Prepare several pre-configured projects for common development environments avaliable in the different OS, similar to the already provided solutions for VS2015 and VS2017. The proposed IDEs would be:
Windows) -> raylib/projects/VS2015Windows) -> raylib/projects/VS2017Linux, Windows, macOS) -> raylib/projects/VSCodeLinux, Windows, macOS) -> raylib/projects/GeanyLinux, Windows, macOS) -> raylib/projects/CodeBlocksLinux) -> raylib/projects/BuilderLinux, Windows, macOS) -> raylib/projects/KDevelopProvided projects should be configured to compile raylib library (static/dynamic) and a simple example (i.e. core_basic_window.c).
KDevelop is a significantly better C/C++ IDE for linux than about anything else listed there (and I think it has a windows port as well but it's still in-dev). It's native format is just cmake files though (it makes a secondary file for holding workspace settings but that's fairly useless overall). Code::Blocks is fairly bad considering what is available nowadays, and isn't Geany basically a glorified text editor? Never heard of GNOME Builder though... ^.^;
If you think that there are people who would benefit, you're welcome to support it. The more the merrier, just follow the guidelines. Code::Blocks is driven by requests on the forum and elsewhere. Geany isn't too different from Gedit or Kate. Like them, it has plugins to expose a terminal, version control, gdb, scripting support and various other low-level tools. It's included in Raspbian, is available everywhere else I've looked and runs well on every machine and DE I've tried. It is kind of boring but gets the job done in a clear way. I like Kate on LXQt/KDE but Geany may be a bit more configurable. I consider it as the LCD.
Builder is nice if you're on GNOME. Both GNOME and full KDE are too heavy for some kinds of machines raylib runs on, though that is no reason to not support them. QtCreator was also mentioned in the Lobby. If you have a sensible config for KDevelop, it should be just a drop-in PR, though I won't speak for Ray.
Thanks @OvermindDL1 for the point, just added KDevelop to list.
QTCreator uses the same backend that KDevelop does for the primary IDE library (though their interfaces are signficantly different and QTCreator trails KDevelop by usually a year or two in versions, which is fairly substantial considering how fast KDevelop advanced, usually the first IDE to get new C/C++ features for example, as well as KDevelop is significantly more configurable than QTCreator as QTCreator is designed to be extremely slim-lined an in-configurable, and very QT-oriented of course). KDevelop is very nice though, I highly recommend at least giving it a try. :-)
But yeah, QTCreator would be easy enough to add, it's CMake support is a bit new and...odd at times, but it works, and its very simple to use, but people may wonder what the QT stuff around is like the form builder.... ^.^;
Cool, I didn't know that. I do really like the KDE interface in general and remember being a little bothered at first by QtCreators unique interface. I did like the documentation viewer and analysis tools but didn't stick around. I don't have any projects complex enough to really use an advanced IDE but I do learn quite a bit by looking at the tools they include. When I have a machine with enough RAM, I'll give it a try. Thanks!
@OvermindDL1 Thanks for the heads up on Qt. Cmake is a litterbug too.
Maybe that's not what you meant. You mean the extra apps like QtDesigner and stuff?
You mean the extra apps like QtDesigner and stuff?
Indeed, it is fairly easy to accidentally load them... ^.^;
Cmake is a litterbug too.
No it's not? It keeps everything in it's build directory (which, in my opinion, should never ever ever be in-source, even KDevelop defaults it to being a dedicated subdirectory ./build/). o.O?
I don't know enough to have made that general statement. I probably wasn't using it correctly, I just remember new files all over the tree.
@OvermindDL1 OT, but would you look at the install target in src/Makefile? Right now, raylib builds into a release/ subdirectory staging area and then, requiring root because ldconfig, is placed by install: into the location specified in some *_INSTALL_PATHS in the makefiles. It works ok for system-wide installs but I'd like to provide an option to install to a user's home directory without requiring root and still be able to build and run the examples and included games against our "personally" installed shared lib. Right now that is accomplished with -rpath. Anyway, if there is anything non-standard or flat wrong that jumps out to you, please let me know. Maybe gitter is a more appropriate venue for this particular discussion if you want to continue. Thanks for the leads.
I just remember new files all over the tree.
Yeesh, yeah that is absolutely not right. If you see any project of who's build does that when you are not doing an in-source build (again, never recommended to do in-source builds, always do out-of-source builds), definitely file a bug report to them (and probably point them to The Hitchhiker鈥檚 Guide to the CMake (made by one of the big CMake people, in addition to the official CMake docs of course)...).
Should this be done to master or develop branch?
Builder is done in https://github.com/raysan5/raylib/pull/470
Hey! I just came back to this yesterday. I have Geany configured for some common scenarios but I'm still not sure how to cause specific files, i.e. raylib.h, to open automatically as you have notepad++ doing. I guess something is better than nothing so I'll get cracking.
i.e. raylib.h, to open automatically as you have notepad++ doing.
Never used Geany so a very uninformed note here: are you sure it can do this? If yes, maybe you need ctags for this to work?
I thought it would be simpler. A .geany project file keeps a list of open files in a raw string format like %2Fhome%2Fraylib%2Fsrc%2Fraylib.h . Not sure how to get our relative paths parsed so Geany can find the files upon project launch. If there is an expansion mechanism, I haven't found it. There are several external methods to tweak the environment during make install or some other target but obviously I want to get the most out the project file first.
On the plus side, custom Build Menu items embedded in the project file CAN find the source tree relative to the shorthand %p representing the project base path. This is where the practical customizations happen. We can create project-global or filetype-specific commands. Deciding what to put here is the fun part. I've made a [Start] button to open the initial environment but I want it auto, you know?
Just created the required folders for the different IDEs that can be supported in commit https://github.com/raysan5/raylib/commit/8ae8d3ac782825d732a0680bd1ad80db420718a9
Please, feel free to add your project related files to those folders! :)
I should be able to revisit what I have over the weekend. MIA saving the business I neglected while playing console instead. I love this stuff but grease and keyboards are kind of like toothpaste and lemonade.
Hey @RDR8! What's your progress with Geany project files? Could you send a PR?
Hey @raysan5 . I'm attempting to set up Visual Studio Code with raylib at the moment with the aim of getting in a PR. Any tips on fixing the error 'The code execution cannot proceed because libwinpthread-1.dll was not found. Reinstalling the program may fix this problem'?
happens when I try:
C:raylibmingwbingcc.exe -o hi.exe hi.c C:raylibraylibraylib.rc.o -s -O2 -std=c99 -Wall -lraylib -lopengl32 -lgdi32 -Iexternal -I../../src -L../../src -Wl,--subsystem,windows
@liamkennedy89 It seems C:\raylib\mingw\bin is not properly set in the path, gcc.exe could require of other programs/libraries in the same folder that, depending the working directory where you launch GCC, those programs/libraries are not found.
Just make sure C:\raylib\mingw\bin is on the path.
Ah, I was hoping to not have to add mingw bin to my envrionment vars path as I don't have to do this for notepad++ to build raylib games
I'm trying to run a sample code in VScode.
mingw32-make game
mingw32-make[1]: Entering directory 'C:/Users/fr-2097/Downloads/VSCode'
gcc -o game -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wl,--subsystem,windows -I. -IC:/raylib/raylib/release/include -IC:/raylib/raylib/src -IC:/raylib/raylib/src/external C:/raylib/raylib/raylib.rc.o -L. -LC:/raylib/raylib/release/libs/win32/mingw32 -LC:/raylib/raylib/src
-lraylib -lopengl32 -lgdi32 -DPLATFORM_DESKTOP
**gcc: fatal error: -fuse-linker-plugin, but liblto_plugin-0.dll not found**
compilation terminated.
This is running fine in Notepad++ though ...
@monsterbrain This issue has already been tracked separately on https://github.com/raysan5/raylib/issues/691.
Just added Geany project template for Windows.
Closing this issue for now.