Skip to content

Help building a 'cmake' project with existing sources based on its directory structure

License

Notifications You must be signed in to change notification settings

mooming/makebuilder

Repository files navigation

makebuilder

This program is developed to help build a c++ project on various platforms.
It generates CMake files based on its directory structure.
It works with its own .config and .txt files. Details are provided below.
We'll denote a directory as a module in the remained document.


Config Files

  • .project.config - It should be located the most root directory of the project. It defines project settings.
  • .module.config - It should be located for each included directory. A directory not having this shall be ignored.

.project.config

.project.config file defines global properties.

  • requiredCMakeVersion - It defines required CMake version. (default: 3.12)
  • cxxStandard - It defines C++ standard version. (default: 17)
  • compileOptions - It defines options passing to the compiler(non-MSVC). (default: -Wall -Werror)
  • msvcCompileOptions - Compiler options for MSVC. (default: /W4 /WX)
  • precompileDefinitions - Pre-compile definitions.

.module.config

.module.config file defines local properties.

  • name - It defines the name of the module.
  • buildType - It defines the type of the module.
  • precompileDefinitions - It defines module-specific precompile definitions.

Build Type

  • Ignored - This module shall be ignored and not be parsed.
  • HeaderOnly - This module has header files only.
  • Executable - This module is an executable and has a source file include main() function. An executable file shall be generated.
  • StaticLibrary - This module is a static library.
  • SharedLibrary - This module is a shared library(dyanmic library).

Module Specifier

  • include.txt - This directory path shall be set as an include path of its children and itself.

Module Property Specifier

  • dependencies.txt - Each line denotes a module dependency.
  • libraries.txt - Each line denotes a required library.

About

Help building a 'cmake' project with existing sources based on its directory structure

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published