Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
SergeyLadanov authored Feb 21, 2023
1 parent 429f3a0 commit de44072
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,52 @@
# Cmake_Template
Шаблон проекта C/C++ для Cmake

# Описание
Шаблон предоставляет возможность организовать модульную структуру проекта C/C++. Весь функционал для организации модульной структуры содержится в файле common-tools.cmake. В папку Components необходимо добавить файлы библиотек/модулей (с отдельным файлом CMakeLists.txt), заголовочные файлы которых будут доступны в главном приложении, сами библиотеки/модули будут собираться независимо. Между компонентами есть возможность выстраивать зависимости (задействовать заголовочные файлы из указанного компонента) с помощью директивы Depends_On в файле СMakeLists.txt компонента:

```
Depends_On(
Dependency_1
Dependency_2
)
```

Допускается использование кавычек в названиях компонента, но не допускается наличие пробелов.

Также можно указать зависимость компонента от главного приложения:

```
Depends_On_Main()
```

Рекомендуемая структура файла CMakeLists.txt для компонента:

```
cmake_minimum_required(VERSION 3.10)
# Put directory name to COMPONENT_NAME variable
get_filename_component(COMPONENT_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME)
# Set component name
project(${COMPONENT_NAME})
# Add source files
set(SOURCE_LIB
Src/file1.cpp
)
# Add includes
include_directories(
Inc
)
# Creating static library
add_library(${COMPONENT_NAME} STATIC ${SOURCE_LIB})
# Set dependence (optionaly)
Depends_On(
"Dependency_1"
Dependency_2
)
```

В случае если компонент не имеет зависимостей от других компонентов, появляется возможность компилировать компонент отдельно от проекта.

0 comments on commit de44072

Please sign in to comment.