yourWaifu / sleepy-discord

C++ library for the Discord chat client. Please use Rust for new bots
https://yourWaifu.github.io/sleepy-discord/
MIT License
705 stars 95 forks source link

Automation of setting up the library #13

Open yourWaifu opened 7 years ago

yourWaifu commented 7 years ago

Currently The user needs to follow these instructions https://yourwaifu.github.io/sleepy-discord/compile.html. However, this can be and should be automated, so that compiling or setting up the library is a more painless process. Once the library is downloaded, the user should just need to do a few things like maybe running a script and then hit compile to get up and running.

There are few things I need for this to work the way I want it to. Here's a list of things I want to have for automating the seting up the deps folder

Compiling Sleepy Discord should be separate, because you only need to set up the deps folder once and Visual Studio has already automated compiling the library.

There have been a few people that tried tackling this issue, however none of their solutions hits all of the above.

xx1182 commented 7 years ago

Well, while i did my run, the only problem i found was with OpenSSL, cause compiling it requires a lot of stuff(well not really), for the other stuff, a .bat script would be more than enough(atleast on Windows).

It could be maybe a simple c++ program that detects the OS, and from there chooses the right script(.bat, bash, no idea for macOS). And, i'm not sure about "Users can choose to use no libraries if they wish" because some are really needed like openSSL and ASIO(expecially this one, since you need to add a lot of PREPROCESSOR DEFINITIONS for it to work out of the box). Anyways, thanks for this amazing project, it's a timesaver.

yourWaifu commented 7 years ago

"Users can choose to use no libraries if they wish" It's is possible use the library without OpenSSL or ASIO, here's an example of an app that does that.

I'm currently I working on a python script that will do the trick. I'll commit it once I get a working version.

yourWaifu commented 7 years ago

I just got these to work

SLASHLogin commented 7 years ago

1>..\deps\cpr\cpr\error.cpp(3): fatal error C1083: Cannot open include file: 'curl/curl.h': No such file or directory 1>..\deps\cpr\cpr\session.cpp(7): fatal error C1083: Cannot open include file: 'curl/curl.h': No such file or directory Errors - solution change name cd ..\deps\cpr\opt\ curl-master to curl I see that it's being written in .py but I'm not sure what went wrong.

yourWaifu commented 7 years ago

Currently, there are issues with getting OpenSSL working since it is harder to unzip 7z files in python.

yourWaifu commented 7 years ago

@SLASHLogin I can't see how that's happening because os.rename("deps/cpr/opt/curl-master", "deps/cpr/opt/curl") should have renamed that folder. So, I found that really strange.

xx1182 commented 7 years ago

I likenyou

Il 04 nov 2017 1:46 AM, "Sleepy Flower Girl" notifications@github.com ha scritto:

@SLASHLogin https://github.com/slashlogin I can't see how that's happening because os.rename("deps/cpr/opt/curl-master", "deps/cpr/opt/curl") should have renamed that folder. So, I found that really strange.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/yourWaifu/sleepy-discord/issues/13#issuecomment-341859290, or mute the thread https://github.com/notifications/unsubscribe-auth/AGb67GQpW6aJZagdXTgwNICCYcH4UJs4ks5sy7PsgaJpZM4Ppb_U .

SLASHLogin commented 7 years ago

Me also, anyway I will do few more tests with this so I will know does this problem occur every time.

xx1182 commented 7 years ago

Ok, i know this May ne not an usual thing. But does wishing you well, Will affect results? Will the development be better? I'm saying this from a learning standpoint, cause, when i eat something made from someone that cares seem better. Feel free to test and share results. I likenyou

Il 04 nov 2017 09:09, "SLASHLogin" notifications@github.com ha scritto:

Me also, anyway I will do few more tests with this so I will know does this problem occur every time.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/yourWaifu/sleepy-discord/issues/13#issuecomment-341879695, or mute the thread https://github.com/notifications/unsubscribe-auth/AGb67CnUEdQGIPEOUH_shwdQ6NjpXibLks5szBuugaJpZM4Ppb_U .

SLASHLogin commented 7 years ago

About curl - I made tests and I think it was a one-time accident. But during the test in own (random) folder and just C: drive setup.py wrote Generating prerequisite files * C:\yourWaifu-sleepy-discord-98f52a3\deps\cpr\opt\curl\Makefile * C:\yourWaifu-sleepy-discord-98f52a3\deps\cpr\opt\curl\src\tool_hugehelp.c

Warning: The curl manual could not be integrated in the source. This means when you build curl the manual will not be available (curl --man). Integration of the manual is not required and a summary of the options will still be available (curl --help). To integrate the manual your PATH is required to have groff/nroff, perl and optionally gzip for compression. This is going to take a while

yourWaifu commented 7 years ago

@SLASHLogin oh thank you for reporting that

Also, I noticed that you will need the dlls for openssl with this. Which can be found here. https://github.com/David-Reguera-Garcia-Dreg/Precompiled-OpenSSL-Windows/tree/master/openssl-1.1.0e-vs2015/bin I plan on fixing this

SLASHLogin commented 7 years ago

I have already made one commit, now just changing few things and making pull req.

tinybarks commented 6 years ago

When I get around to playing with this library, I'll port it over to CMake and git submodules. That will make setup.py redundant, since the dependencies (except for OpenSSL) can just be embedded as git submodules. Since both cpr and websocket++ are built with CMake themselves, adding them to the build should become as trivial as add_subdirectory(cpr) followed by target_link_libraries(sleepydiscord cpr), and they will be downloaded automatically in the right version when cloning or getting a zip of the sleepy-discord repo.

yourWaifu commented 6 years ago

@tinybarks Does CMake and git submodules allow the user to choose the librarys they want to download? Sleepy Discord doesn't require any librarys and I want to keep that way. Just making sure before it is ported over because you weren't the only one that suggested the idea to me.

tinybarks commented 6 years ago

@yourWaifu Yep, you can add flags to the build to enable disable building and/or linking specific libraries.