summaryrefslogtreecommitdiffstats
path: root/docs/3_Developer_Guides/5_Using_CMAKE_Applications_Module/1_Project_Architecture.md
diff options
context:
space:
mode:
authorShankho Boron Ghosh <shankhoghosh123@gmail.com>2020-11-30 04:31:25 +0530
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-12-07 19:57:24 +0000
commit13b212d9ec61c0316eec59948144de19ea314d2f (patch)
treed6ac1d349936dc6ccd2112e54623a1102a5602de /docs/3_Developer_Guides/5_Using_CMAKE_Applications_Module/1_Project_Architecture.md
parent05f50b5c65de6027429e74c6f8dff53c86fff512 (diff)
Added Using CMAKE Applications Module in Developer Guides
Revised and added Using CMAKE Applications Module as a part of Developer Guides. Bug-AGL: [SPEC-3633] Signed-off-by: Shankho Boron Ghosh <shankhoghosh123@gmail.com> Change-Id: I2cf8e06d3f4c43e748476eaddcb950417f5f0eba Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/documentation/+/25666 Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'docs/3_Developer_Guides/5_Using_CMAKE_Applications_Module/1_Project_Architecture.md')
-rw-r--r--docs/3_Developer_Guides/5_Using_CMAKE_Applications_Module/1_Project_Architecture.md74
1 files changed, 74 insertions, 0 deletions
diff --git a/docs/3_Developer_Guides/5_Using_CMAKE_Applications_Module/1_Project_Architecture.md b/docs/3_Developer_Guides/5_Using_CMAKE_Applications_Module/1_Project_Architecture.md
new file mode 100644
index 0000000..0602ea1
--- /dev/null
+++ b/docs/3_Developer_Guides/5_Using_CMAKE_Applications_Module/1_Project_Architecture.md
@@ -0,0 +1,74 @@
+---
+title: Project Architecture
+---
+
+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/ | conf.d/ | Contains output files used to build packages.
+| cmake/ | conf.d/ | Minimally contains the config.cmake file, which is modified from the sample provided in the app-templates submodule.
+| wgt/ | conf.d/ | 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. \ No newline at end of file