From 9b37562a1cd1b88c6a2d11dc2d38d1385a775179 Mon Sep 17 00:00:00 2001 From: Sean Farrell Date: Wed, 1 Aug 2018 17:33:59 -0700 Subject: [PATCH] Upgrades to and fixes VS2107 suport --- .gitignore | 1 + contrib/FlexLexer.h | 220 ++++++++++++++++++++++++++++++++++++ contrib/include/FlexLexer.h | 206 --------------------------------- contrib/include/rtest.h | 143 ----------------------- contrib/src/rtest.cpp | 121 -------------------- include/rjson.h | 2 +- rjson.sln | 50 ++++---- rjson/rjson.vcxproj | 170 ++++++++++++++++++++++++++++ rjson/rjson.vcxproj.filters | 51 +++++++++ test/rtest.cpp | 2 +- test/test.vcxproj | 188 ++++++++++++++++++++++++++++++ test/test.vcxproj.filters | 45 ++++++++ 12 files changed, 705 insertions(+), 494 deletions(-) create mode 100644 contrib/FlexLexer.h delete mode 100644 contrib/include/FlexLexer.h delete mode 100644 contrib/include/rtest.h delete mode 100644 contrib/src/rtest.cpp create mode 100644 rjson/rjson.vcxproj create mode 100644 rjson/rjson.vcxproj.filters create mode 100644 test/test.vcxproj create mode 100644 test/test.vcxproj.filters diff --git a/.gitignore b/.gitignore index b599c41..daee62a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ rjson-test.exe rjson.dll librjson.a librjson.dll +*.user diff --git a/contrib/FlexLexer.h b/contrib/FlexLexer.h new file mode 100644 index 0000000..c4dad2b --- /dev/null +++ b/contrib/FlexLexer.h @@ -0,0 +1,220 @@ +// -*-C++-*- +// FlexLexer.h -- define interfaces for lexical analyzer classes generated +// by flex + +// Copyright (c) 1993 The Regents of the University of California. +// All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Kent Williams and Tom Epperly. +// +// 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. + +// 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE. + +// This file defines FlexLexer, an abstract class which specifies the +// external interface provided to flex C++ lexer objects, and yyFlexLexer, +// which defines a particular lexer class. +// +// If you want to create multiple lexer classes, you use the -P flag +// to rename each yyFlexLexer to some other xxFlexLexer. You then +// include in your other sources once per lexer class: +// +// #undef yyFlexLexer +// #define yyFlexLexer xxFlexLexer +// #include +// +// #undef yyFlexLexer +// #define yyFlexLexer zzFlexLexer +// #include +// ... + +#ifndef __FLEX_LEXER_H +// Never included before - need to define base class. +#define __FLEX_LEXER_H + +#include + +extern "C++" { + +struct yy_buffer_state; +typedef int yy_state_type; + +class FlexLexer +{ +public: + virtual ~FlexLexer() { } + + const char* YYText() const { return yytext; } + int YYLeng() const { return yyleng; } + + virtual void + yy_switch_to_buffer( yy_buffer_state* new_buffer ) = 0; + virtual yy_buffer_state* yy_create_buffer( std::istream* s, int size ) = 0; + virtual yy_buffer_state* yy_create_buffer( std::istream& s, int size ) = 0; + virtual void yy_delete_buffer( yy_buffer_state* b ) = 0; + virtual void yyrestart( std::istream* s ) = 0; + virtual void yyrestart( std::istream& s ) = 0; + + virtual int yylex() = 0; + + // Call yylex with new input/output sources. + int yylex( std::istream& new_in, std::ostream& new_out ) + { + switch_streams( new_in, new_out ); + return yylex(); + } + + int yylex( std::istream* new_in, std::ostream* new_out = 0) + { + switch_streams( new_in, new_out ); + return yylex(); + } + + // Switch to new input/output streams. A nil stream pointer + // indicates "keep the current one". + virtual void switch_streams( std::istream* new_in, + std::ostream* new_out ) = 0; + virtual void switch_streams( std::istream& new_in, + std::ostream& new_out ) = 0; + + int lineno() const { return yylineno; } + + int debug() const { return yy_flex_debug; } + void set_debug( int flag ) { yy_flex_debug = flag; } + +protected: + char* yytext; + int yyleng; + int yylineno; // only maintained if you use %option yylineno + int yy_flex_debug; // only has effect with -d or "%option debug" +}; + +} +#endif // FLEXLEXER_H + +#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce) +// Either this is the first time through (yyFlexLexerOnce not defined), +// or this is a repeated include to define a different flavor of +// yyFlexLexer, as discussed in the flex manual. +# define yyFlexLexerOnce + +extern "C++" { + +class yyFlexLexer : public FlexLexer { +public: + // arg_yyin and arg_yyout default to the cin and cout, but we + // only make that assignment when initializing in yylex(). + yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ); + yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 ); +private: + void ctor_common(); + +public: + + virtual ~yyFlexLexer(); + + void yy_switch_to_buffer( yy_buffer_state* new_buffer ); + yy_buffer_state* yy_create_buffer( std::istream* s, int size ); + yy_buffer_state* yy_create_buffer( std::istream& s, int size ); + void yy_delete_buffer( yy_buffer_state* b ); + void yyrestart( std::istream* s ); + void yyrestart( std::istream& s ); + + void yypush_buffer_state( yy_buffer_state* new_buffer ); + void yypop_buffer_state(); + + virtual int yylex(); + virtual void switch_streams( std::istream& new_in, std::ostream& new_out ); + virtual void switch_streams( std::istream* new_in = 0, std::ostream* new_out = 0 ); + virtual int yywrap(); + +protected: + virtual int LexerInput( char* buf, int max_size ); + virtual void LexerOutput( const char* buf, int size ); + virtual void LexerError( const char* msg ); + + void yyunput( int c, char* buf_ptr ); + int yyinput(); + + void yy_load_buffer_state(); + void yy_init_buffer( yy_buffer_state* b, std::istream& s ); + void yy_flush_buffer( yy_buffer_state* b ); + + int yy_start_stack_ptr; + int yy_start_stack_depth; + int* yy_start_stack; + + void yy_push_state( int new_state ); + void yy_pop_state(); + int yy_top_state(); + + yy_state_type yy_get_previous_state(); + yy_state_type yy_try_NUL_trans( yy_state_type current_state ); + int yy_get_next_buffer(); + + std::istream yyin; // input source for default LexerInput + std::ostream yyout; // output sink for default LexerOutput + + // yy_hold_char holds the character lost when yytext is formed. + char yy_hold_char; + + // Number of characters read into yy_ch_buf. + int yy_n_chars; + + // Points to current character in buffer. + char* yy_c_buf_p; + + int yy_init; // whether we need to initialize + int yy_start; // start state number + + // Flag which is used to allow yywrap()'s to do buffer switches + // instead of setting up a fresh yyin. A bit of a hack ... + int yy_did_buffer_switch_on_eof; + + + 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. */ + void yyensure_buffer_stack(void); + + // The following are not always needed, but may be depending + // on use of certain flex features (like REJECT or yymore()). + + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; + + yy_state_type* yy_state_buf; + yy_state_type* yy_state_ptr; + + char* yy_full_match; + int* yy_full_state; + int yy_full_lp; + + int yy_lp; + int yy_looking_for_trail_begin; + + int yy_more_flag; + int yy_more_len; + int yy_more_offset; + int yy_prev_more_offset; +}; + +} + +#endif // yyFlexLexer || ! yyFlexLexerOnce diff --git a/contrib/include/FlexLexer.h b/contrib/include/FlexLexer.h deleted file mode 100644 index bad4ce0..0000000 --- a/contrib/include/FlexLexer.h +++ /dev/null @@ -1,206 +0,0 @@ -// -*-C++-*- -// FlexLexer.h -- define interfaces for lexical analyzer classes generated -// by flex - -// Copyright (c) 1993 The Regents of the University of California. -// All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Kent Williams and Tom Epperly. -// -// 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. - -// 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR -// IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE. - -// This file defines FlexLexer, an abstract class which specifies the -// external interface provided to flex C++ lexer objects, and yyFlexLexer, -// which defines a particular lexer class. -// -// If you want to create multiple lexer classes, you use the -P flag -// to rename each yyFlexLexer to some other xxFlexLexer. You then -// include in your other sources once per lexer class: -// -// #undef yyFlexLexer -// #define yyFlexLexer xxFlexLexer -// #include -// -// #undef yyFlexLexer -// #define yyFlexLexer zzFlexLexer -// #include -// ... - -#ifndef __FLEX_LEXER_H -// Never included before - need to define base class. -#define __FLEX_LEXER_H - -#include -# ifndef FLEX_STD -# define FLEX_STD std:: -# endif - -extern "C++" { - -struct yy_buffer_state; -typedef int yy_state_type; - -class FlexLexer { -public: - virtual ~FlexLexer() { } - - const char* YYText() const { return yytext; } - int YYLeng() const { return yyleng; } - - virtual void - yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0; - virtual struct yy_buffer_state* - yy_create_buffer( FLEX_STD istream* s, int size ) = 0; - virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0; - virtual void yyrestart( FLEX_STD istream* s ) = 0; - - virtual int yylex() = 0; - - // Call yylex with new input/output sources. - int yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 ) - { - switch_streams( new_in, new_out ); - return yylex(); - } - - // Switch to new input/output streams. A nil stream pointer - // indicates "keep the current one". - virtual void switch_streams( FLEX_STD istream* new_in = 0, - FLEX_STD ostream* new_out = 0 ) = 0; - - int lineno() const { return yylineno; } - - int debug() const { return yy_flex_debug; } - void set_debug( int flag ) { yy_flex_debug = flag; } - -protected: - char* yytext; - int yyleng; - int yylineno; // only maintained if you use %option yylineno - int yy_flex_debug; // only has effect with -d or "%option debug" -}; - -} -#endif // FLEXLEXER_H - -#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce) -// Either this is the first time through (yyFlexLexerOnce not defined), -// or this is a repeated include to define a different flavor of -// yyFlexLexer, as discussed in the flex manual. -#define yyFlexLexerOnce - -extern "C++" { - -class yyFlexLexer : public FlexLexer { -public: - // arg_yyin and arg_yyout default to the cin and cout, but we - // only make that assignment when initializing in yylex(). - yyFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 ); - - virtual ~yyFlexLexer(); - - void yy_switch_to_buffer( struct yy_buffer_state* new_buffer ); - struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size ); - void yy_delete_buffer( struct yy_buffer_state* b ); - void yyrestart( FLEX_STD istream* s ); - - void yypush_buffer_state( struct yy_buffer_state* new_buffer ); - void yypop_buffer_state(); - - virtual int yylex(); - virtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 ); - virtual int yywrap(); - -protected: - virtual int LexerInput( char* buf, int max_size ); - virtual void LexerOutput( const char* buf, int size ); - virtual void LexerError( const char* msg ); - - void yyunput( int c, char* buf_ptr ); - int yyinput(); - - void yy_load_buffer_state(); - void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream* s ); - void yy_flush_buffer( struct yy_buffer_state* b ); - - int yy_start_stack_ptr; - int yy_start_stack_depth; - int* yy_start_stack; - - void yy_push_state( int new_state ); - void yy_pop_state(); - int yy_top_state(); - - yy_state_type yy_get_previous_state(); - yy_state_type yy_try_NUL_trans( yy_state_type current_state ); - int yy_get_next_buffer(); - - FLEX_STD istream* yyin; // input source for default LexerInput - FLEX_STD ostream* yyout; // output sink for default LexerOutput - - // yy_hold_char holds the character lost when yytext is formed. - char yy_hold_char; - - // Number of characters read into yy_ch_buf. - int yy_n_chars; - - // Points to current character in buffer. - char* yy_c_buf_p; - - int yy_init; // whether we need to initialize - int yy_start; // start state number - - // Flag which is used to allow yywrap()'s to do buffer switches - // instead of setting up a fresh yyin. A bit of a hack ... - int yy_did_buffer_switch_on_eof; - - - size_t yy_buffer_stack_top; /**< index of top of stack. */ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */ - void yyensure_buffer_stack(void); - - // The following are not always needed, but may be depending - // on use of certain flex features (like REJECT or yymore()). - - yy_state_type yy_last_accepting_state; - char* yy_last_accepting_cpos; - - yy_state_type* yy_state_buf; - yy_state_type* yy_state_ptr; - - char* yy_full_match; - int* yy_full_state; - int yy_full_lp; - - int yy_lp; - int yy_looking_for_trail_begin; - - int yy_more_flag; - int yy_more_len; - int yy_more_offset; - int yy_prev_more_offset; -}; - -} - -#endif // yyFlexLexer || ! yyFlexLexerOnce - diff --git a/contrib/include/rtest.h b/contrib/include/rtest.h deleted file mode 100644 index a725e00..0000000 --- a/contrib/include/rtest.h +++ /dev/null @@ -1,143 +0,0 @@ -// -// Copyright (c) 2013 Sean Farrell -// -// 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. -// - -#ifndef _RTEST_H_ -#define _RTEST_H_ - -#include -#include -#include - -namespace rtest -{ - int run(); - - namespace impl - { - struct Failure - { - const char* file; - unsigned int line; - std::string msg; - - Failure(const char* file, unsigned int line, const std::string& msg); - }; - - struct Test - { - const char* name; - const char* file; - unsigned int line; - - Test(const char* name, const char* file, unsigned int line); - - virtual void run() = 0; - }; - - void check(bool cond, const char* scond, const char* file, unsigned int line); - - template - void check_equal(T1 a, T2 b, const char* file, unsigned int line) - { - if (a != b) - { - std::stringstream buff; - buff << "Expected " << a << " but got " << b << "."; - throw ::rtest::impl::Failure(file, line, buff.str()); - } - } - - template <> - void check_equal(const char* a, const char* b, const char* file, unsigned int line); - - template <> - void check_equal(const std::string& a, const char* b, const char* file, unsigned int line); - - template <> - void check_equal(const char* a, const std::string& b, const char* file, unsigned int line); - - template - void check_close(T1 a, T2 b, T3 eps, const char* file, unsigned int line) - { - if (std::abs(a - b) >= eps) - { - std::stringstream buff; - buff << "Expected " << a << " +- " << eps << " but got " << b << "."; - throw ::rtest::impl::Failure(file, line, buff.str()); - } - } - } -} - -#define SUITE(NAME) namespace NAME ## _suite - -#define TEST(NAME) \ - struct Test_ ## NAME : public ::rtest::impl::Test \ - { \ - Test_ ## NAME() \ - : Test(#NAME, __FILE__, __LINE__) {} \ - \ - void run(); \ - \ - } test_ ## NAME; \ - \ - void Test_ ## NAME ::run() - -#define TEST_FIXTURE(FIXTURE, NAME) \ - struct Helper_ ## NAME : public FIXTURE \ - { \ - void run(); \ - }; \ - \ - struct Test_ ## NAME : public ::rtest::impl::Test \ - { \ - Test_ ## NAME() \ - : Test(#NAME, __FILE__, __LINE__) {} \ - \ - void run() \ - { \ - Helper_ ## NAME fixture; \ - fixture.run(); \ - } \ - } test_ ## NAME; \ - \ - void Helper_ ## NAME ::run() - -#define CHECK(COND) ::rtest::impl::check(COND, #COND, __FILE__, __LINE__) - -#define CHECK_EQUAL(A, B) ::rtest::impl::check_equal(A, B, __FILE__, __LINE__) - -#define CHECK_CLOSE(A, B, EPS) ::rtest::impl::check_close(A, B, EPS, __FILE__, __LINE__) - -#define CHECK_THROW(EXPR, OBJ) \ - try \ - { \ - EXPR; \ - throw ::rtest::impl::Failure(__FILE__, __LINE__, "'" #EXPR "' did not throw '" #OBJ "'."); \ - } \ - catch (OBJ) \ - { \ - \ - } - - -#endif diff --git a/contrib/src/rtest.cpp b/contrib/src/rtest.cpp deleted file mode 100644 index 54b7611..0000000 --- a/contrib/src/rtest.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// Copyright (c) 2013 Sean Farrell -// -// 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. -// - -#include "rtest.h" - -#include -#include -#include - -namespace rtest -{ - std::vector& get_tests() - { - static std::vector tests; - return tests; - } - - int run() - { - std::vector& tests = get_tests(); - - unsigned int failed = 0; - for (unsigned int i = 0; i < tests.size(); i++) - { - try - { - tests[i]->run(); - } - catch (impl::Failure& failure) - { - std::cerr << failure.file << "(" << failure.line << "): error: " << failure.msg << std::endl; - failed++; - } - catch (std::exception& ex) - { - std::cerr << tests[i]->file << "(" << tests[i]->line << "): error: " << ex.what() << std::endl; - failed++; - } - catch (...) - { - std::cerr << tests[i]->file << "(" << tests[i]->line << "): error: Test " << tests[i]->name << " crashed." << std::endl; - failed++; - } - } - - unsigned int succeded = tests.size() - failed; - std::cerr << succeded << " of " << tests.size() << " tests succeded." << std::endl; - - return failed == 0 ? 0 : -1; - } - - namespace impl - { - Failure::Failure(const char* f, unsigned int l, const std::string& m) - { - file = f; - line = l; - msg = m; - } - - Test::Test(const char* n, const char* f, unsigned int l) - { - name = n; - file = f; - line = l; - get_tests().push_back(this); - } - - void check(bool cond, const char* scond, const char* file, unsigned int line) - { - if (!(cond)) - { - std::stringstream buff; - buff << scond << " failed."; - throw ::rtest::impl::Failure(file, line, buff.str()); - } - } - - template <> - void check_equal(const char* a, const char* b, const char* file, unsigned int line) - { - if (std::strcmp(a, b) != 0) - { - std::stringstream buff; - buff << "Expected " << a << " but got " << b << "."; - throw ::rtest::impl::Failure(file, line, buff.str()); - } - } - - template <> - void check_equal(const std::string& a, const char* b, const char* file, unsigned int line) - { - check_equal(a.c_str(), b, file, line); - } - - template <> - void check_equal(const char* a, const std::string& b, const char* file, unsigned int line) - { - check_equal(a, b.c_str(), file, line); - } - } -} diff --git a/include/rjson.h b/include/rjson.h index 038ffeb..c677533 100644 --- a/include/rjson.h +++ b/include/rjson.h @@ -30,7 +30,7 @@ #include #include -#ifdef _MSC_VER +#ifdef _WIN32 #define EXPORT __declspec(dllexport) #else #define EXPORT diff --git a/rjson.sln b/rjson.sln index 1abe40a..b6f7ed2 100644 --- a/rjson.sln +++ b/rjson.sln @@ -1,38 +1,44 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30501.0 +# Visual Studio 15 +VisualStudioVersion = 15.0.27703.2042 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rjson", "rjson\rjson.vcxproj", "{198166CA-8D24-47A2-8AC9-F276A6046BAA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rjson", "rjson\rjson.vcxproj", "{C8116C5F-CED9-4321-A7F5-68FC9389DED8}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcxproj", "{0302D409-AC1D-4FA5-9FED-A458578E34A2}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcxproj", "{CB139474-5C01-4095-A34E-8A196FC5CD0F}" + ProjectSection(ProjectDependencies) = postProject + {C8116C5F-CED9-4321-A7F5-68FC9389DED8} = {C8116C5F-CED9-4321-A7F5-68FC9389DED8} + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 + Debug|x86 = Debug|x86 Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {198166CA-8D24-47A2-8AC9-F276A6046BAA}.Debug|Win32.ActiveCfg = Debug|Win32 - {198166CA-8D24-47A2-8AC9-F276A6046BAA}.Debug|Win32.Build.0 = Debug|Win32 - {198166CA-8D24-47A2-8AC9-F276A6046BAA}.Debug|x64.ActiveCfg = Debug|x64 - {198166CA-8D24-47A2-8AC9-F276A6046BAA}.Debug|x64.Build.0 = Debug|x64 - {198166CA-8D24-47A2-8AC9-F276A6046BAA}.Release|Win32.ActiveCfg = Release|Win32 - {198166CA-8D24-47A2-8AC9-F276A6046BAA}.Release|Win32.Build.0 = Release|Win32 - {198166CA-8D24-47A2-8AC9-F276A6046BAA}.Release|x64.ActiveCfg = Release|x64 - {198166CA-8D24-47A2-8AC9-F276A6046BAA}.Release|x64.Build.0 = Release|x64 - {0302D409-AC1D-4FA5-9FED-A458578E34A2}.Debug|Win32.ActiveCfg = Debug|Win32 - {0302D409-AC1D-4FA5-9FED-A458578E34A2}.Debug|Win32.Build.0 = Debug|Win32 - {0302D409-AC1D-4FA5-9FED-A458578E34A2}.Debug|x64.ActiveCfg = Debug|x64 - {0302D409-AC1D-4FA5-9FED-A458578E34A2}.Debug|x64.Build.0 = Debug|x64 - {0302D409-AC1D-4FA5-9FED-A458578E34A2}.Release|Win32.ActiveCfg = Release|Win32 - {0302D409-AC1D-4FA5-9FED-A458578E34A2}.Release|Win32.Build.0 = Release|Win32 - {0302D409-AC1D-4FA5-9FED-A458578E34A2}.Release|x64.ActiveCfg = Release|x64 - {0302D409-AC1D-4FA5-9FED-A458578E34A2}.Release|x64.Build.0 = Release|x64 + {C8116C5F-CED9-4321-A7F5-68FC9389DED8}.Debug|x64.ActiveCfg = Debug|x64 + {C8116C5F-CED9-4321-A7F5-68FC9389DED8}.Debug|x64.Build.0 = Debug|x64 + {C8116C5F-CED9-4321-A7F5-68FC9389DED8}.Debug|x86.ActiveCfg = Debug|Win32 + {C8116C5F-CED9-4321-A7F5-68FC9389DED8}.Debug|x86.Build.0 = Debug|Win32 + {C8116C5F-CED9-4321-A7F5-68FC9389DED8}.Release|x64.ActiveCfg = Release|x64 + {C8116C5F-CED9-4321-A7F5-68FC9389DED8}.Release|x64.Build.0 = Release|x64 + {C8116C5F-CED9-4321-A7F5-68FC9389DED8}.Release|x86.ActiveCfg = Release|Win32 + {C8116C5F-CED9-4321-A7F5-68FC9389DED8}.Release|x86.Build.0 = Release|Win32 + {CB139474-5C01-4095-A34E-8A196FC5CD0F}.Debug|x64.ActiveCfg = Debug|x64 + {CB139474-5C01-4095-A34E-8A196FC5CD0F}.Debug|x64.Build.0 = Debug|x64 + {CB139474-5C01-4095-A34E-8A196FC5CD0F}.Debug|x86.ActiveCfg = Debug|Win32 + {CB139474-5C01-4095-A34E-8A196FC5CD0F}.Debug|x86.Build.0 = Debug|Win32 + {CB139474-5C01-4095-A34E-8A196FC5CD0F}.Release|x64.ActiveCfg = Release|x64 + {CB139474-5C01-4095-A34E-8A196FC5CD0F}.Release|x64.Build.0 = Release|x64 + {CB139474-5C01-4095-A34E-8A196FC5CD0F}.Release|x86.ActiveCfg = Release|Win32 + {CB139474-5C01-4095-A34E-8A196FC5CD0F}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FDFD49DB-96F8-47DF-8D4C-CF38567EA03A} + EndGlobalSection EndGlobal diff --git a/rjson/rjson.vcxproj b/rjson/rjson.vcxproj new file mode 100644 index 0000000..f099170 --- /dev/null +++ b/rjson/rjson.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + + + 15.0 + {C8116C5F-CED9-4321-A7F5-68FC9389DED8} + Win32Proj + rjson + 8.1 + + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)$(PlatformTarget)\$(Configuration)\ + $(PlatformTarget)\$(Configuration)\ + + + true + $(SolutionDir)$(PlatformTarget)\$(Configuration)\ + $(PlatformTarget)\$(Configuration)\ + + + false + $(SolutionDir)$(PlatformTarget)\$(Configuration)\ + $(PlatformTarget)\$(Configuration)\ + + + false + $(SolutionDir)$(PlatformTarget)\$(Configuration)\ + $(PlatformTarget)\$(Configuration)\ + + + + Level3 + Disabled + WIN32;_DEBUG;RJSON_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)/include;$(SolutionDir)/contrib;%(AdditionalIncludeDirectories) + + + Windows + true + + + + + Level3 + Disabled + _DEBUG;RJSON_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)/include;$(SolutionDir)/contrib;%(AdditionalIncludeDirectories) + + + Windows + true + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;RJSON_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)/include;$(SolutionDir)/contrib;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + + + + + Level3 + MaxSpeed + true + true + NDEBUG;RJSON_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)/include;$(SolutionDir)/contrib;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + + + + + + \ No newline at end of file diff --git a/rjson/rjson.vcxproj.filters b/rjson/rjson.vcxproj.filters new file mode 100644 index 0000000..bbd9ef3 --- /dev/null +++ b/rjson/rjson.vcxproj.filters @@ -0,0 +1,51 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/test/rtest.cpp b/test/rtest.cpp index c93d03e..54b7611 100644 --- a/test/rtest.cpp +++ b/test/rtest.cpp @@ -91,7 +91,7 @@ namespace rtest { std::stringstream buff; buff << scond << " failed."; - throw ::rtest::impl::Failure(file, line, buff.str()); + throw ::rtest::impl::Failure(file, line, buff.str()); } } diff --git a/test/test.vcxproj b/test/test.vcxproj new file mode 100644 index 0000000..6f7debf --- /dev/null +++ b/test/test.vcxproj @@ -0,0 +1,188 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + 15.0 + {CB139474-5C01-4095-A34E-8A196FC5CD0F} + Win32Proj + test + 8.1 + + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)$(PlatformTarget)\$(Configuration)\ + $(PlatformTarget)\$(Configuration)\ + + + true + $(SolutionDir)$(PlatformTarget)\$(Configuration)\ + $(PlatformTarget)\$(Configuration)\ + + + false + $(SolutionDir)$(PlatformTarget)\$(Configuration)\ + $(PlatformTarget)\$(Configuration)\ + + + false + $(SolutionDir)$(PlatformTarget)\$(Configuration)\ + $(PlatformTarget)\$(Configuration)\ + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + $(SolutionDir)/include;$(SolutionDir)/contrib/include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir) + rjson.lib;%(AdditionalDependencies) + + + $(TargetPath) + + + + + Level3 + Disabled + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + $(SolutionDir)/include;$(SolutionDir)/contrib/include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir) + rjson.lib;%(AdditionalDependencies) + + + $(TargetPath) + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + $(SolutionDir)/include;$(SolutionDir)/contrib/include;%(AdditionalIncludeDirectories) + + + Console + true + true + true + $(OutDir) + rjson.lib;%(AdditionalDependencies) + + + $(TargetPath) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + $(SolutionDir)/include;$(SolutionDir)/contrib/include;%(AdditionalIncludeDirectories) + + + Console + true + true + true + $(OutDir) + rjson.lib;%(AdditionalDependencies) + + + $(TargetPath) + + + + + + \ No newline at end of file diff --git a/test/test.vcxproj.filters b/test/test.vcxproj.filters new file mode 100644 index 0000000..14756fa --- /dev/null +++ b/test/test.vcxproj.filters @@ -0,0 +1,45 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + \ No newline at end of file