- Crawler is a quick prototiping platform for Windows and Visual Studio (C++11).
- Crawler is just a premake script + many common libraries ready to use.
- You just put sources and headers into any
apps/
subfolder as you like. - Executing
crawler.bat
will- Scan your disk structure crawling for headers and sources. Automatically.
- Create/delete projects as needed. Automatically.
- Create new applications in the solution. Automatically.
- Refresh all projects into solution. Automatically.
- Refresh all include paths for every project in the solution. Automatically.
- Refresh all sources for every project in the solution. Automatically.
- Rewrite all licenses found into LICENSE file. Automatically.
- Compile and link statically everything.
- I have collected many samples from many repos to showcase the build tech. Feel free to browse the apps/ folder. You can compile them with the
.sln
file generated above. - And that is all (hopefully). The following libraries are already provided.
- Animations: spine-runtime
- Audio: soloud, modplug
- Compression: miniz
- Data: json11, pugixml, stb_image, nanosvg
- Databases: sqlite3
- Dialogs: native-file-dialog, tiny-file-dialogs
- Frameworks: SDL2, GLFW3, SFML2, freeglut, glwt, sketch2d (*)
- Extensions: gl3w, glew, glxw
- Input: ois
- Math: eigen, glm (*)
- Meshes: assimp
- Network: enet
- Physics: bullet2, box2d (*)
- Profilers: microprofile, remotery (*)
- Rendering: nanovg, libtess2
- Scripting: lua
- Text: stb_truetype, fontstash
- User interfaces: imgui
- [*] Yes, all included. Stick to the one you like the most :)
- 📂
/
, README, LICENSES and main script. - 📂
apps/
, where all your applications are (a folder per executable). - 📂
libs/
, where all the tech love/hate is. Sorted by context. - 📂
patches/
, where code patches are located (if needed).
git clone https://github.com/r-lyeh/crawler && cd crawler && crawler
git pull && crawler
- Why?
- It is always a pain to set up, compile and test most of the projects I find on the internet. Specially on Windows. I just want to drop sources on a folder and give them a try. Without messing with dependencies, include paths, libs and makefiles.
- How to add my new app/program to the solution?
- Create a new subfolder in
apps/
. - Put your awesome game in there, and execute
crawler.bat
. - All your game source files will be scanned and added into solution.
- All your game header paths will be scanned and added into solution.
- Check that
.prj/crawler.sln
solution is already updated. Profit.
- Create a new subfolder in
- How to clean the project/disk tree?
- Execute
crawler clean
.
- Execute
- How to compile from command-line?
- Execute
crawler make
.
- Execute
- Why there are no git submodules for each library?
- Ease of use. Newbies can just download the whole repository as a
zip
file. And everything should be there already. Additionally, it takes git a while (ages!) to initialize & download everything when there are many submodules already in the repository.
- Ease of use. Newbies can just download the whole repository as a
- Can you add [xxx] library?
- Probably, as long as the library is widely supported / useful for anyone.
- Can you add [xxx] scripting language?
- Probably, as long as it is already located in the Scriptorium repository.
- Does it compile on linux or osx?
- Partial support already. Pull-requests anyone?
- Does it compile on android or ios?
- Nope. Pull-requests anyone?
- What is the license for the repo?
- Premake script is Public Domain.
- What is the license for the libraries?
- For every library in use here, check LICENSE file.
- What is the license for the samples?
- For every sample in
apps/
folder, check each folder separately.
- For every sample in
- What about L/GPL?
- There is no L/GPL software in the repository.
- What is the build model (trade-off) for the solution configurations ?
- Everything is linked statically, so you can redistribute your .exe more easily.
- Also check the following directives/compilation flags table:
▼targets\defines▶ | #HAS_DEBUGINFO | #HAS_OPTIMIZATIONS | #MASTER --- | --- | --- | --- | --- DEBUG | (3):heavy_check_mark::heavy_check_mark::heavy_check_mark: | (0):heavy_multiplication_x: | (0):heavy_multiplication_x: DEBUGOPT | (2):heavy_check_mark::heavy_check_mark: | (1):heavy_check_mark: | (0):heavy_multiplication_x: RELEASE/NDEBUG | (1):heavy_check_mark: | (2):heavy_check_mark::heavy_check_mark: | (0):heavy_multiplication_x: SHIPPING | (0):heavy_multiplication_x: | (3):heavy_check_mark::heavy_check_mark::heavy_check_mark: | (1):heavy_check_mark:
- Check LICENSE file as well.
- assimp, BSD licensed.
- boost, BOOST licensed.
- bullet2, ZLIB/LIBPNG licensed.
- eigen, BSD licensed.
- enet, MIT licensed.
- freeglut, MIT licensed.
- GL, MIT licensed.
- glew, MIT licensed.
- glfw3, ZLIB/LIBPNG licensed.
- glm, MIT licensed.
- glut, PD licensed.
- glwt, ZLIB/LIBPNG licensed.
- glxw, ZLIB/LIBPNG licensed.
- imgui, MIT licensed.
- json11, MIT licensed.
- libmodplug, PD licensed.
- libtess2, SGI licensed.
- miniz, PD licensed.
- nanosvg, ZLIB/LIBPNG licensed.
- nanovg, ZLIB/LIBPNG licensed.
- nativefiledialog, ZLIB/LIBPNG licensed.
- poly2tri, BSD licensed.
- pugixml, MIT licensed.
- remotery, APACHE2 licensed.
- SDL2, ZLIB/LIBPNG licensed.
- SFML2, ZLIB/LIBPNG licensed.
- sketch2d, MIT licensed.
- soloud, ZLIB/LIBPNG licensed.
- spine-lua, BSD licensed.
- spine-runtimes, BSD licensed.
- stb, PD licensed.
- tedsid, PD licensed.
- tinyfiledialogs, ZLIB/LIBPNG licensed.
- zlib, ZLIB/LIBPNG licensed.