Skip to content

H4tch/MonsterBS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MonsterBS


The Monster Build System is a collection of scripts that make it painless to create, customize, and manage a C++ project from a single control file. It is built on top of Make and Shell scripts.

Features

  • Cross-platform Support
  • Cross-compilation Support
  • Build profiles for:
    • Debug and Release builds
    • OS: Windows, Linux, and Mac
    • Arch: x86 and x86_64
  • Test builds
  • Reverse header dependency generation
  • Static and Shared Library creation
  • Out of source tree build output
  • Header and library installation
  • Packaging of release builds
  • Documentation generation using Doxygen
  • Batch script to launch Windows build
  • Shell script to launch Linux/Mac build
  • FreeDesktop.org's .desktop file generation/installation for Unix platforms
  • LinesOfCode calculation script using cloc-1.60.pl

Getting Started

  • Make a copy of the 'Project.mk' file and name it to your project's name.

cp Project.mk PROJECT_NAME.mk

  • Open it and fill in the Metadata, Directories, Build Targets and other Fields

  • Source files are automatically generated by detecting all .cpp files within SRCDIR. This can be customized for other languages, or you can list the files manually.

  • Customize the Compilation settings. The 'FLAG' settings are applied to all targets. Settings for a specific target are added by the '_PROFILE' functions.

  • Once finished with customization, your Project can be generated using Make.

make PROJECT_NAME

  • This will generate your Project into a folder named after your Project.

Implementation Overview

Your Project's main Project.mk file contains all variable definitions needed to customize the Project's scripts and Makefile. When make project is executed the Makefile includes all of the Project.mk variables, then executes
MonsterBS.sh. This script will create your Project's folder hierarchy, and copy over relevant scripts from the tools directory. The script will then go through all of the copied files, and replace instances of $$VARIABLE_NAME with the value set within the Project definition file. (Additions or Removals of Project.mk variables need to be reflected manually within the script.)

When you compile your Project with make, it will include some of your Project's settings. However, most scripts won't do this, changes to their variables in Project.mk won't be reflected until you regenerate your project with MonsterBS.

Created by Dan H4tch 2014-2015

About

A C++ build system and project generation tool.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published