Skip to content

Generate C/C++ projects for Linux, Mac, Windows, GCC, Clang and Visual Studio that comply with the Native Project Standards

Notifications You must be signed in to change notification settings

mlabbe/cookiecutter-nativeprojectstandards

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Generate C/C++ projects for Linux, Mac, Windows, GCC, Clang and Visual Studio that comply with the Native Project Standards

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published