Project template for C++14 using the Premake 5 build system.
- Place yourself in the root directory of this project.
- Execute
git submodule update --init --recursive. - Acquire the latest version of the
premake5build system. - Thereafter, execute
premake5 gmakeif building on Make. - Finally, issue the command
make -j8 -C buildand wait. - When complete, either
binorlibhave been built. - Tests can be run with the
bin/*-testsprograms. - Shortcuts:
make runandmake test.
See the docs directory for maybe the project documentation.
Should run on anything, even on toaster-like potato-ish hardware.
Fortunately, there aren't any dependencies besides premake now.
bin: contains the built software and accompanying testing suite.build: stores intermediate object files and generated GNU Make files.obj: has all of the generated object files given under compilation.Makefile: automatically generated by executingpremake5 gmake.*.make: program specific make config for augmentingMakefile.
docs: any generated documentation for this project is over here.foreign: external headers and source for libraries and Catch.include: only internal headers from this project should go here.project directories: internal headers for the project.
lib: any generated libraries from the project reside here.license.md: please look through this very carefully.premake5.lua: configuration file for the build system.readme.md: this file, contains information on the project.share: any extra data that needs to be bundled should be here.src: all source code for the project should be located below here.project directories: source code for specific project build.main.cc:
tests: source code for the project's testing suite, using Catch syntax.project directories: project specific testing suite for one build.main.cc:
utils: any sort of helper scripts or similar should be over here.
- See if there any updates upstream:
git remote update - If you are already working on a feature branch, jump to step 4.
- Create a new branch for your feature:
git branch <feature> - Change to the feature branch by:
git checkout <feature> - Start/continue building the feature. Jump to 7 if done.
- Push your changes to your remote feature branch with:
git add -A(everything) orgit add -u(updates).git commit -m "Message describing the additions."- Publish remotely:
git push origin <feature> - Go back to step 1 or 5 (if working quickly).
- Your feature is done (single/many commits).
- Fetch the changes from upstream first:
- Go to master:
git checkout -b master - Pull changes:
git pull origin master
- Go to master:
- Rebase your changes on top of
master:- Back to feature:
git checkout <feature> - Thereafter, issue:
git rebase master - Fix any conflicts that may happen...
- Changes now on top of the Git tree.
- Back to feature:
- Finally, go to GitHub and issue PR.
- Listen in on other's feedback!
- Make changes if necessary.
- Back to the master:
git checkout master - Pat yourself on the back, then goto 1 again.
There are definitely no known bugs in this software at this time.
If I have seen further it is by standing on the shoulders of giants. - Isaac Newton