Skip to content
Generate C/C++ projects for Linux, Mac, Windows, GCC, Clang and Visual Studio that comply with the Native Project Standards
Python Lua C C++
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
fonts
hooks
{{ cookiecutter.directory_name }}
.gitignore
README.md
cookiecutter.json

README.md

Project status

WIP - don't use it yet

Native Project Standards Generator

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.

Installation

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.

Usage

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.

TODO

  • 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

Credits

Native Project Standards by Michael Labbe Copyright (C) 2016-2017 Frogtoss Games, Inc. @frogtoss

You can’t perform that action at this time.