WIP - don't use it yet
This Cookiecutter generates a C/C++ project based on the Native Project Standards. This includes standardized directories to support most projects. It also uses Premake to pre-generate build scripts which can be distributed. Because the generated Premake files can be distributed, they don't have to be run by your end users. See Premake For Package Maintainers for details on this low-interference strategy to cross platform project development.
It supports projects that contain static libraries, dynamic libraries and exes. Post-generation, your project will build on Linux, Mac and Windows in 32-bit and 64-bit. Because it uses Premake, it is possible to extend the project to other operating systems.
Prior to installation, make sure Premake5 is in your path, as well as Python. These instructions work for any desktop operating system.
# download and install the cookiecutter project templating system
pip install cookiecutter
# run cookiecutter
cookiecutter https://github.com/mlabbe/cookiecutter-nativeprojectstandards
Cookiecutter will now ask you questions about your project including where to put it.
The philosophy behind the Native Project Standards is that it supports standardized locations for everything in a build tree. If you don't need something, you delete it. If you need it, you put it where it says it should go.
- add support for NPS-compliant bin dirs outside of visual studio (currently it puts the bins under the build dirs), see
targetdir
filters in premake template - improve generated readme.md, especially when it comes to building
- create installer scripts
- create helper script that generates buildinfo.h, put it in tools
- document
- all of the build commands
- supported configurations
- how vendors works
- Add launch script support in
tools/bin
- Support Installers:
- If installer support is needed, include build/dist/insert
- possibly generate logo
- generate insertable license
Native Project Standards by Michael Labbe Copyright (C) 2016-2017 Frogtoss Games, Inc. @frogtoss