garrynewman / bootil Goto Github PK
View Code? Open in Web Editor NEWMy personal utility library, feel free to steal :)
My personal utility library, feel free to steal :)
Hello,
I used bootil to compile gmad as stated here
However, I got a problem when compiling gmad.sln with msbuild:
LINK : fatal error LNK1181: unable to read input file 'bootil_
static.lib' [C:\Users\User\dir\gmad-master-new\GMad
.vcxproj]
I looked in the bootil directory and cannot find such file. Is it missing, or did I specified something I should have not ?
wrong repo
This is the error spat out by the compiler:
../../../src/Bootil/Platform/Platform_LINUX.cpp: In function ‘void Bootil::Platform::StartProcess(const BString&, bool)’: ../../../src/Bootil/Platform/Platform_LINUX.cpp:224:12: error: ‘wait’ was not declared in this scope { wait(); }
As C++17 (C++1z) is getting closer I thought maybe it's time to get at least up to C++11 and C++14 standards...
Doing so not only reduces platform specific code, it also reduces dependencies and therefore should make the end result smaller and faster, not to mention compiler optimisations.
One example is C++11's thread class, so far the only thing I missed on that would be setting a thread name, which is rather easy to deliver trough std::thread::native_handle() (not that Bootil supported that in the first place)
Another example would be the filesystem TS (based on boost's one) that "most modern" compilers include:
GCC/G++
MSVC/VC++
Note: It seems that clang hasn't started on the TS yet (much to my surprise, one could include the boost fs lib for this case): http://libcxx.llvm.org/ts1z_status.html
I guess the first step would be to identify places that can be improved using the new standards (ex. Bootil/Threads) and create a TaskList in here
Ubuntu (Gnome) 3.8.0-30-genericx86_64
==== Building GMad (release) ====
error_code.cpp
src/3rdParty/boost_lib/system/src/error_code.cpp:47:3: error: expected class-name before ‘{’ token
src/3rdParty/boost_lib/system/src/error_code.cpp:50:27: error: expected ‘;’ at end of member declaration
src/3rdParty/boost_lib/system/src/error_code.cpp:50:33: error: ‘BOOST_SYSTEM_NOEXCEPT’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:51:5: error: ‘string’ in namespace ‘std’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:55:3: error: expected class-name before ‘{’ token
src/3rdParty/boost_lib/system/src/error_code.cpp:58:32: error: expected ‘;’ at end of member declaration
src/3rdParty/boost_lib/system/src/error_code.cpp:58:38: error: ‘BOOST_SYSTEM_NOEXCEPT’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:59:5: error: ‘string’ in namespace ‘std’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:60:5: error: ‘error_condition’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:65:53: error: expected initializer before ‘BOOST_SYSTEM_NOEXCEPT’
src/3rdParty/boost_lib/system/src/error_code.cpp:70:3: error: ‘string’ in namespace ‘std’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:163:52: error: expected initializer before ‘BOOST_SYSTEM_NOEXCEPT’
src/3rdParty/boost_lib/system/src/error_code.cpp:168:3: error: ‘error_condition’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:354:3: error: ‘string’ in namespace ‘std’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:417:5: error: ‘BOOST_SYSTEM_DECL’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:424:5: error: ‘BOOST_SYSTEM_DECL’ does not name a type
src/3rdParty/boost_lib/system/src/error_code.cpp:430:5: error: ‘BOOST_SYSTEM_DECL’ does not name a type
make[1]: *** [obj/Release/error_code.o] Error 1
make: *** [GMad] Error 2
I can't compile bootil on Ubuntu 14.04 with the following steps:
git clone https://github.com/garrynewman/bootil
cd bootil/projects
premake4 gmake
cd linux/gmake
make
fails with output$ make
==== Building bootil_static (release) ====
Creating ../../../lib/linux/gmake
Creating obj/Release
globber.cpp
...
happyhttp.cpp
../../../src/3rdParty/happyhttp/happyhttp.cpp: In member function ‘void happyhttp::Connection::close()’:
../../../src/3rdParty/happyhttp/happyhttp.cpp:286:3: error: ‘::close’ has not been declared
::close( m_Sock );
^
make[1]: *** [obj/Release/happyhttp.o] Error 1
make: *** [bootil_static] Error 2
Edit: I've tried updating src/3rdParty/happyhttp
to the latest version on github, compiling successfully builds happyhttp and a couple other .cpp files, but now fails at src/Bootil/Network/Socket.cpp
with:
$ make
...
../../../src/Bootil/Network/Socket.cpp: In member function ‘void Bootil::Network::Socket::Close(const char*)’:
../../../src/Bootil/Network/Socket.cpp:165:28: error: ‘close’ was not declared in this scope
closesocket( m_pSocket );
I'd like to add Bootil to a package manager (in order to use it as a dependency for gmad
, in order to automate building of Workshop addons, ...), and that requires listing the source code license. The only license info with this repository is "feel free to steal :)". Is that supposed to imply that it's public domain, or just redistributable without attribution?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.