diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2019-03-19 11:59:52 -0600 |
---|---|---|
committer | Scott Rifenbark <srifenbark@gmail.com> | 2019-03-26 13:00:16 -0700 |
commit | 16829a33f77f9d9eda435f5f1c36f36bc33fb267 (patch) | |
tree | dd1f36dc54d7d4d18241f8cf051f7ac639b1f4f5 /docs/dev_guide/3-project-architecture.md | |
parent | a6daa45c47f553b9ff6a1120f48a322f4e834363 (diff) |
cmake-apps-module: New file names.
Created some new file names based on some re-writing.
Also, updated the devguides-book.yml file to reflect the
state of things.
Change-Id: I6a9a91fe9c2f271493404ab7d63b6d6a8faf586e
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Diffstat (limited to 'docs/dev_guide/3-project-architecture.md')
-rwxr-xr-x | docs/dev_guide/3-project-architecture.md | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/docs/dev_guide/3-project-architecture.md b/docs/dev_guide/3-project-architecture.md new file mode 100755 index 0000000..aefaca3 --- /dev/null +++ b/docs/dev_guide/3-project-architecture.md @@ -0,0 +1,76 @@ +# Project architecture + +CMake projects follow a typical file hierarchy. +The following tree structure represents a typical CMake project +directory structure: + +```tree +<project-root-path> +| +├── CMakeLists.txt +│ +├── autobuild/ +│ ├── agl +│ │ └── autobuild +│ ├── linux +│ │ └── autobuild +│ └── windows +│ └── autobuild +├── conf.d/ +│ ├── packaging/ +│ │ ├── rpm +│ │ │ └── package.spec +│ │ └── deb +│ │ ├── package.dsc +│ │ ├── debian.package.install +│ │ ├── debian.changelog +│ │ ├── debian.compat +│ │ ├── debian.control +│ │ └── debian.rules +│ ├── cmake +│ │ ├── 00-debian-osconfig.cmake +│ │ ├── 00-suse-osconfig.cmake +│ │ ├── 01-default-osconfig.cmake +│ │ └── config.cmake +│ └── wgt +│ ├── icon.png +│ └── config.xml.in +├── <target> +│ └── <files> +├── <target> +│ └── <file> +└── <target> + └── <files> +``` + +| File or Directory | Parent | Description | +|----|----|----| +| *root_path* | n/a | CMake project root path. Holds the master CMakeLists.txt file and all general project files. +| CMakeLists.txt | The master CMakeLists.txt file. +| autobuild/ | *root_path* | Scripts generated from app-templates to build packages the same way for differents platforms. +| conf.d/ | *root_path* | Holds needed files to build, install, debug, and package an AGL application project. +| packaging/ | confd/ | Contains output files used to build packages. +| cmake/ | confd/ | Minimally contains the config.cmake file, which is modified from the sample provided in the app-templates submodule. +| wgt/ | confd/ | Contains config.xml.in and optionaly the test-config.xml.in template files that are modified from the sample provided with the CMake module for the needs of the project. For more details, see the config.xml.in.sample and test-config.xml.in.sample files. +| *target* | *root_path* | A target to build, which is typically a library or executable. + +When building projects using CMake, the build process automatically detects +the `CMakeLists.txt` and `*.cmake` files. +To help with this process, the `PROJECT_SRC_DIR_PATTERN` variable +is used for recursive pattern searching from the CMake project's +*root_path* downward. +Each sub-folder below *root_path* in the project is searched and included +during compilation. +The directories matching the pattern `PROJECT_SRC_DIR_PATTERN` variable +are scanned. + +**NOTE:** The `PROJECT_SRC_DIR_PATTERN` variable defaults to "*". + +When the `CMakeLists.txt` file is found, the directory in which it is found +is automatically added to the CMake project. + +Similarly, when a file whose extension is `.cmake` is found, the directory in +which that file resides is also added to the CMake project. + + + |