diff --git a/.gitignore b/.gitignore index 7a7c132d..ae380bf9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,72 +1,73 @@ -# Python (Bytecode) -*.pyc - -# ninja files -*.ninja - -# Visual Studio -*.props -*.user -.vs/ -Debug/ -Release/ -x64/ -*.vcxproj -*.vcxproj.filters -*.tlog -*.lastbuildstate -*.idb -*.sln -*.gitattributes - -# VSCode -.vscode/ - -# Compiler outputs -obj/* -bin/* - -# Dropbox interference -.dropbox* - -# QtCreator -*.creator.user.* -*.config -*.creator -*.files -*.includes - -# Scratchpad Files -main2.cpp -main.cpp - -# Local Lua Testbeds -lua-5.3.2/ -lua-5.3.1/ -lua-5.3.0/ -lua-5.2.4/ -lua-5.2.2/ -lua-5.2.3/ -lua-5.1.5/ -luajit-2.0.4/ -luajit-2.0.3/ -include/ -liblua.a -lib/liblua5.2.a - -# Windows Crap -desktop.ini -*.sublime-workspace -docs/build/ -*.sublime-project -m.lua -single/sol.hpp -*.db -lua53.dll -main.exe -main.o -lua-5.3.3/ -main.lua -LuaJIT-2.1.0/ -lua-5.3.3-cxx/ -lua-5.3.3.vcxproj-cxx.filters +# Python (Bytecode) +*.pyc + +# ninja files +*.ninja + +# Visual Studio +*.props +*.user +.vs/ +Debug/ +Release/ +x64/ +*.vcxproj +*.vcxproj.filters +*.tlog +*.lastbuildstate +*.idb +*.sln +*.gitattributes + +# VSCode +.vscode/ + +# Compiler outputs +obj/* +bin/* + +# Dropbox interference +.dropbox* + +# QtCreator +*.creator.user.* +*.config +*.creator +*.files +*.includes + +# Scratchpad Files +main2.cpp +main.cpp + +# Local Lua Testbeds +lua-5.3.2/ +lua-5.3.1/ +lua-5.3.0/ +lua-5.2.4/ +lua-5.2.2/ +lua-5.2.3/ +lua-5.1.5/ +luajit-2.0.4/ +luajit-2.0.3/ +include/ +liblua.a +lib/liblua5.2.a + +# Windows Crap +desktop.ini +*.sublime-workspace +docs/build/ +*.sublime-project +m.lua +single/sol.hpp +*.db +lua53.dll +main.exe +main.o +lua-5.3.3/ +main.lua +LuaJIT-2.1.0/ +lua-5.3.3-cxx/ +lua-5.3.3.vcxproj-cxx.filters +sol.pyproj diff --git a/single.py b/single.py index f53a9410..7607d51e 100644 --- a/single.py +++ b/single.py @@ -148,7 +148,7 @@ if not args.quiet: print('Current version: {version} (revision {revision})\n'.format(version = version, revision = revision)) -processed_files = [os.path.join(script_path, 'sol', x) for x in ('state.hpp', 'object.hpp', 'function.hpp', 'coroutine.hpp')] +processed_files = [os.path.join(script_path, x) for x in ['sol.hpp']] result = '' ss = StringIO() diff --git a/single/sol/sol.hpp b/single/sol/sol.hpp index 9640bd3e..79794ded 100644 --- a/single/sol/sol.hpp +++ b/single/sol/sol.hpp @@ -20,13 +20,35 @@ // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // This file was generated with a script. -// Generated 2016-12-10 10:55:55.463053 UTC -// This header was generated with sol v2.15.5 (revision f4f3bff) +// Generated 2016-12-16 05:28:22.940422 UTC +// This header was generated with sol v2.15.5 (revision bbcbd41) // https://github.com/ThePhD/sol2 #ifndef SOL_SINGLE_INCLUDE_HPP #define SOL_SINGLE_INCLUDE_HPP +// beginning of sol.hpp + +#ifndef SOL_HPP +#define SOL_HPP + +#if defined(UE_BUILD_DEBUG) || defined(UE_BUILD_DEVELOPMENT) || defined(UE_BUILD_TEST) || defined(UE_BUILD_SHIPPING) || defined(UE_SERVER) +#define SOL_INSIDE_UNREAL +#endif // Unreal Engine 4 bullshit + +#ifdef SOL_INSIDE_UNREAL +#ifdef check +#define SOL_INSIDE_UNREAL_REMOVED_CHECK +#undef check +#endif +#endif // Unreal Engine 4 Bullshit + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +#pragma GCC diagnostic ignored "-Wconversion" +#endif // g++ + // beginning of sol/state.hpp // beginning of sol/state_view.hpp @@ -1388,7 +1410,7 @@ inline int luaL_fileresult(lua_State *L, int stat, const char *fname) { } else { char buf[1024]; -#ifdef __GLIBC__ +#if defined(__GLIBC__) || defined(_POSIX_VERSION) strerror_r(en, buf, 1024); #else strerror_s(buf, 1024, en); @@ -2067,18 +2089,17 @@ namespace sol { }; template - struct optional_base - { + struct optional_base { + char storage_[sizeof(T) + (sizeof(T) % alignof(T))]; bool init_; - char storage_[sizeof(T)]; - constexpr optional_base() noexcept : init_(false), storage_() {}; + constexpr optional_base() noexcept : storage_(), init_(false) {}; - explicit optional_base(const T& v) : init_(true), storage_() { + explicit optional_base(const T& v) : storage_(), init_(true) { new (&storage())T(v); } - explicit optional_base(T&& v) : init_(true), storage_() { + explicit optional_base(T&& v) : storage_(), init_(true) { new (&storage())T(constexpr_move(v)); } @@ -2116,17 +2137,16 @@ namespace sol { using constexpr_optional_base = optional_base; #else template - struct constexpr_optional_base - { + struct constexpr_optional_base { + char storage_[sizeof(T) + (sizeof(T) % alignof(T))]; bool init_; - char storage_[sizeof(T)]; - constexpr constexpr_optional_base() noexcept : init_(false), storage_() {} + constexpr constexpr_optional_base() noexcept : storage_(), init_(false) {} - explicit constexpr constexpr_optional_base(const T& v) : init_(true), storage_() { + explicit constexpr constexpr_optional_base(const T& v) : storage_(), init_(true) { new (&storage())T(v); } - explicit constexpr constexpr_optional_base(T&& v) : init_(true), storage_() { + explicit constexpr constexpr_optional_base(T&& v) : storage_(), init_(true) { new (&storage())T(constexpr_move(v)); } @@ -2917,8 +2937,6 @@ namespace sol { // beginning of sol/string_shim.hpp -#pragma once - namespace sol { namespace string_detail { struct string_shim { @@ -2977,7 +2995,9 @@ namespace sol { } }; } -}// end of sol/string_shim.hpp +} + +// end of sol/string_shim.hpp #include @@ -13057,4 +13077,17 @@ namespace sol { // end of sol/coroutine.hpp +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif // g++ + +#ifdef SOL_INSIDE_UNREAL +#ifdef SOL_INSIDE_UNREAL_REMOVED_CHECK +#define check(expr) { if(UNLIKELY(!(expr))) { FDebug::LogAssertFailedMessage( #expr, __FILE__, __LINE__ ); _DebugBreakAndPromptForRemote(); FDebug::AssertFailed( #expr, __FILE__, __LINE__ ); CA_ASSUME(false); } }} +#endif +#endif // Unreal Engine 4 Bullshit + +#endif // SOL_HPP +// end of sol.hpp + #endif // SOL_SINGLE_INCLUDE_HPP diff --git a/sol/compatibility/5.x.x.inl b/sol/compatibility/5.x.x.inl index 17bab23c..b32cb7f2 100644 --- a/sol/compatibility/5.x.x.inl +++ b/sol/compatibility/5.x.x.inl @@ -309,7 +309,7 @@ inline int luaL_fileresult(lua_State *L, int stat, const char *fname) { } else { char buf[1024]; -#ifdef __GLIBC__ +#if defined(__GLIBC__) || defined(_POSIX_VERSION) strerror_r(en, buf, 1024); #else strerror_s(buf, 1024, en); diff --git a/sol/optional_implementation.hpp b/sol/optional_implementation.hpp index ad281785..7ed7fcd2 100644 --- a/sol/optional_implementation.hpp +++ b/sol/optional_implementation.hpp @@ -287,18 +287,17 @@ namespace sol { template - struct optional_base - { + struct optional_base { + char storage_[sizeof(T) + (sizeof(T) % alignof(T))]; bool init_; - char storage_[sizeof(T)]; - constexpr optional_base() noexcept : init_(false), storage_() {}; + constexpr optional_base() noexcept : storage_(), init_(false) {}; - explicit optional_base(const T& v) : init_(true), storage_() { + explicit optional_base(const T& v) : storage_(), init_(true) { new (&storage())T(v); } - explicit optional_base(T&& v) : init_(true), storage_() { + explicit optional_base(T&& v) : storage_(), init_(true) { new (&storage())T(constexpr_move(v)); } @@ -336,17 +335,16 @@ namespace sol { using constexpr_optional_base = optional_base; #else template - struct constexpr_optional_base - { + struct constexpr_optional_base { + char storage_[sizeof(T) + (sizeof(T) % alignof(T))]; bool init_; - char storage_[sizeof(T)]; - constexpr constexpr_optional_base() noexcept : init_(false), storage_() {} + constexpr constexpr_optional_base() noexcept : storage_(), init_(false) {} - explicit constexpr constexpr_optional_base(const T& v) : init_(true), storage_() { + explicit constexpr constexpr_optional_base(const T& v) : storage_(), init_(true) { new (&storage())T(v); } - explicit constexpr constexpr_optional_base(T&& v) : init_(true), storage_() { + explicit constexpr constexpr_optional_base(T&& v) : storage_(), init_(true) { new (&storage())T(constexpr_move(v)); } diff --git a/sol/string_shim.hpp b/sol/string_shim.hpp index 79ad15de..73aa8164 100644 --- a/sol/string_shim.hpp +++ b/sol/string_shim.hpp @@ -1,4 +1,26 @@ -#pragma once +// The MIT License (MIT) + +// Copyright (c) 2013-2016 Rapptz, ThePhD and contributors + +// 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 SOL_STRING_SHIM_HPP +#define SOL_STRING_SHIM_HPP #include #include @@ -61,4 +83,6 @@ namespace sol { } }; } -} \ No newline at end of file +} + +#endif // SOL_STRING_SHIM_HPP