Adaptive Framework 0.9.0

Packages

You may find yourself using Adaptive Framework Core in order to build something of your own. There's nothing that prevents you from setting up your own project to use Adaptive Framework, but you may find that the afwdev provides some convenient helper commands to get you started and to maintain your project. A project that uses afwdev to build and maintain is called a Package.

Packages are Git repositories that hold one or more commands, extensions, configurations, objects or layouts using Adaptive Framework and maintained using the afwdev tool. The following illustrates the file system layout of a typical package:

<AFW package root directory>
|-- doc/                         # Generated docs                   
|-- generated/                   # Produced by generate subcommand
|   |-- *.cmake                  # Generated cmake files
|-- src/                         # Commonly src/ contains source directories
|   |-- <SRCDIR>/                # One or more command, extension, or server
|       |-- generate/            # Processed by generate subcommand
|       |-- generated/           # Produced by generate subcommand
|       |   |-- c source         # Generated *.h and .c files
|       |   |-- *.cmake          # Generated cmake files
|       |   |-- ...              # Other generated files and directories
|       |-- c source             # <SRCDIR>_*.h and .c files
|       |-- CMakeLists.txt       # CMakeLists.txt for <SRCDIR>
|       |-- ...                  # Other source files and directories
|-- .editorconfig                # Source editor coding style
|-- .gitattributes               # Command git attributes for pathnames
|-- .gitignore                   # Command git files to ignore
|-- afw-package.json             # AFW package file managed by the afwdev
|-- CMakeLists.txt               # Root CMakeLists.txt for afw package
|-- COPYING                      # Licensing information.
|-- Doxyfile                     # Doxygen configuration file
|-- LICENSE                      # The license.
|-- package.json                 # Used to build a JavaScript package
|-- <PACKAGE_ID>_git_info.sh     # Used to produce <PACKAGE_ID>_git_info.h
|-- <PACKAGE_ID>_git_info.h      # Header file containing git information
|-- README.md                    # Repository README.md
|-- miscellaneous directories    # Other directories
|-- miscellaneous files          # Other files

Creating a New Package

New Package are created using the afdev make-afw-package subcommand.

afwdev make-afw-package <implementation_id> <afw_package_dir_path>