Options

Here we list the optional parameters in mkg.

Program Metadata

  • -v or --version shows version number and exits the program

  • -h or --help shows help message and exits the program

  • --licenses show the available open-source licenses and exits the program

  • --standards: Show available language standards and exit the program

Project Metadata

  • -p _prog_ or --prog _prog_ sets project program name to prog, default to directory name

  • -a _author_ or --author _author_ sets project author to author, default to somebody

  • -b _brief_ or --brief _brief_ sets project description to brief, default to something

  • -o _config_ or --config _config_ sets project configuration to config, default to Makefile

  • -l _license_ or --license _license_ chooses a open-source license, default to none

Here are the available licenses in our program:

  • Recommended

    • Apache License 2.0 (apache2)

    • GNU General Public License v3.0 (gpl3)

    • MIT License (mit)

  • Alternative

    • BSD 2-clause “Simplified” license (bsd2)

    • BSD 3-clause “New” or “Revised” license (bsd3)

    • Eclipse Public License 2.0 (epl2)

    • GNU Affero General Public License v3.0 (agpl3)

    • GNU General Public License v2.0 (gpl2)

    • GNU Lesser General Public License v2.1 (lgpl2)

    • GNU Lesser General Public License v3.0 (lgpl3)

    • Mozilla Public License 2.0 (mpl2)

    • The Unlicense (unlicense)

Behavior Modifiers

  • -c or -C generates a C project (default)

  • -cpp or -cxx generates a C++ project

  • -std _std_ or --standard _std_ set the language standard to std

  • --console generates a console application project (default)

  • --library generates a library project

  • --nested generates a nested project (default)

  • --flat generates a flat project

  • -f or --force removes all existing contents on path (Dangerous!)

  • --custom runs it interactively with more customization

Here are the available language standard for C:

  • c89 or c90

  • c99

  • c11 (default)

  • c17 or c18

  • gnu89 or gnu90

  • gnu99

  • gnu11

  • gnu17 or gnu18

Due to the limitation from Visual C++, this setting won’t take effect when using Visual C++.

Here are the available language standard for C++:

  • c++98 or c++03

  • c++11

  • c++14

  • c++17 (default)

  • gnu++98 or gnu++03

  • gnu++11

  • gnu++14

  • gnu++17

Due to the limitation from Visual C++, mkg will automatically set to the most appropriate language standard for C++ when using Visual C++.

Project Structure

These parameters only make effects in nested projects.

  • -s _dir_ or --source _dir_ sets source directory, default to src

  • -i _dir_ or --include _dir_ sets include directory, default to include

  • -d _dir_ or --dist _dir_ sets dist directory, default to dist

  • -t _dir_ or --test _dir_ sets test programs directory, default to tests

  • -e _dir_ or --example _dir_ sets example programs directory, default to examples