https://github.com/mlabbe/cookiecutter-nativeprojectstandards
Generate C/C++ projects for Linux, Mac, Windows, GCC, Clang and Visual Studio that comply with the Native Project Standards
https://github.com/mlabbe/cookiecutter-nativeprojectstandards
Last synced: about 1 year ago
JSON representation
Generate C/C++ projects for Linux, Mac, Windows, GCC, Clang and Visual Studio that comply with the Native Project Standards
- Host: GitHub
- URL: https://github.com/mlabbe/cookiecutter-nativeprojectstandards
- Owner: mlabbe
- Created: 2016-08-27T20:06:26.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-01-26T18:07:28.000Z (over 2 years ago)
- Last Synced: 2025-03-22T07:24:10.703Z (over 1 year ago)
- Language: Python
- Size: 130 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](http://www.frogtoss.com/labs/pages/native-project-standards.html). 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](http://www.frogtoss.com/labs/premake-for-package-maintainers.html) 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](https://premake.github.io/download.html) is in your path, as well as [Python](https://www.python.org). 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](https://www.twitter.com/frogtoss)