Git Product home page Git Product logo

cppps's Introduction

cppPS

A tool to setup new projects in c++

Requirements

  • Ninja

Recommended

  • Clang

Instructions

  1. Set an environment variable to the .exe file (or just type the full path to the tool)
  2. Use the tool in the project folder.
  3. Adjust the varsx64.ninja and varsx86.ninja files for your includes, libraries, and flags if needed.
  4. Add your files to the src folder and include folder and call the update function for this tool.
  5. Use the buildx64.bat or buildx86.bat (dependending on what you want to build for) to build your project.
  6. Profit???

Commands

  • -v
    This reports the version of this tool.

  • -help or -h
    This list the commands, what they do, and what the tool does.

  • -f
    This selects a different directory than the current directory for the tool.

  • -n
    This set the project name which will determine the output files name (Not Required). Default name is output.

  • -u
    This update a project setup by this tool at the current directory. Should be called when you change anything in the src folder.

  • -i
    This sets some environment variables that this tool uses such as WLIBVALUES.

  • -c
    This sets a variable for the compiler that you wish to use. It can be a path. By default, it is "clang"

  • -ct
    This sets a variable for the compiler type that you are using. This can be automatically set by -c. Will only detect gcc, clang, and msvc.

Additional Options

  • -Include_Windows
    Includes the windows headers and libraries for both x86 and x64. Done through environment variables

  • -Static_Library
    Sets the project up for building a static library. Other builds are still included.

  • -Dynamic_Library
    Sets the project up for building a dynamic library. Other builds are still included.

  • -Ext_Debug_Flags
    Adds additional debug options to the debug build of the project.

  • -VSCode_Files
    Adds settings files for vscode to build and launch the program.

  • -Exclude_x86
    Removes the x86 build and launch options.

  • -Exclude_x64
    Removes the x64 build and launch options.

Notes

This tool can be used with any compiler and operating system that ninja supports.
By default, this tool uses clang and outputs a batch file for easy compilation.

cppPS can now use any compiler specified through the -c option and assumes that
either gcc or msvc syntax will work. If they do not, the user must adjust the generated
files.

cppPS can also generate the necessary environment variables to include windows by using the -i option.

cppps's People

Contributors

davidah121 avatar

Watchers

James Cloos avatar  avatar

cppps's Issues

Generates x86 build files when not using them

Should only generate what is necessary based on the project meaning that if the project does not require x86 builds, it should not generate them or regenerate them either when updating.

Both Dynamic Library and Static Library options use clang by default

With the addition of version 1.9, the user can define a separate compiler to use where the default is clang.
These functions were not finished and still use clang and llvm-ar to generate the dll and static lib.
These should be changed after further research into library creation.

They also do not react to disabling x86 or x64.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.