Compare commits

...

3 Commits

2 changed files with 50 additions and 28 deletions

View File

@@ -1,24 +1,37 @@
function(add_uncrustify_format) function(add_format_sources)
list(GET ARGN 0 _target) list(GET ARGN 0 _target)
set(_sources ${ARGN}) set(_sources ${ARGN})
list(REMOVE_AT _sources 0) list(REMOVE_AT _sources 0)
if(NOT TARGET format-sources)
add_custom_target(format-sources)
endif()
find_program(UNCRUSTIFY_EXE NAMES uncrustify) find_program(UNCRUSTIFY_EXE NAMES uncrustify)
if(UNCRUSTIFY_EXE) if(UNCRUSTIFY_EXE)
if(NOT TARGET uncrustify-format) list(APPEND UNCRUSTIFY_OPTS
add_custom_target(uncrustify-format)
endif()
list(APPEND OPTS
-lCPP -lCPP
--replace --replace
--no-backup) --no-backup)
if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/etc/uncrustify/default.cfg) if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/etc/uncrustify/default.cfg)
list(APPEND OPTS -c ${CMAKE_SOURCE_DIR}/cmake/etc/uncrustify/default.cfg) list(APPEND UNCRUSTIFY_OPTS -c ${CMAKE_SOURCE_DIR}/cmake/etc/uncrustify/default.cfg)
endif() endif()
add_custom_target(uncrustify-format-${_target} COMMAND ${UNCRUSTIFY_EXE} ${OPTS} ${_sources}) add_custom_target(format-sources-uncrustify-${_target} COMMAND ${UNCRUSTIFY_EXE} ${UNCRUSTIFY_OPTS} ${_sources})
add_dependencies(uncrustify-format uncrustify-format-${_target}) add_dependencies(format-sources format-sources-uncrustify-${_target})
else() else()
message(STATUS "CMLIB warning:") message(STATUS "CMLIB warning:")
message(STATUS " Uncrustify is not found") message(STATUS " uncrustify executable is not found")
endif()
find_program(DOS2UNIX_EXE NAMES dos2unix)
if(DOS2UNIX_EXE)
list(APPEND DOS2UNIX_OPTS
-k
-r)
add_custom_target(format-sources-dos2unix-${_target} COMMAND ${DOS2UNIX_EXE} ${OPTS} ${_sources})
add_dependencies(format-sources format-sources-dos2unix-${_target})
else()
message(STATUS "CMLIB warning:")
message(STATUS " dos2unix executable is not found")
endif() endif()
endfunction() endfunction()

View File

@@ -7,11 +7,19 @@
В каталоге проекта выполнить команду В каталоге проекта выполнить команду
```sh ```sh
git submodule add ssh://git@host/user/cmlib cmake/cmlib git submodule add git@host:user/cmlib cmake/cmlib
``` ```
заменив `host` и `user` на нужные значения. заменив `host` и `user` на нужные значения.
Кроме того желательно установить библиотеки `find` и `generators`.
```sh
git submodule add git@host:user/cmake-find cmake/find
git submodule add git@host:user/cmake-generators cmake/generators
```
## Использование ## Использование
В основном для проекта файле `CMakeLists.txt` добавить: В основном для проекта файле `CMakeLists.txt` добавить:
@@ -26,25 +34,26 @@ endif()
include(CMLibCommon) include(CMLibCommon)
``` ```
Создать файл `cmake/etc/version.txt`, в который нужно Создать файл `cmake/etc/Variable.cmake`, в котором нужно
записать номер версии проекта, отвечающий стандарту определить переменные, используемые в проекте, например:
[семантического версионирования](https://semver.org/lang/ru/).
В файле `cmake/etc/organization.txt` записать название ```cmake
организации, которой принадлежит проект. set(ORGANIZATION_NAME "org")
В файле `cmake/etc/cpack_ignore.txt` перечислить шаблоны set(CPACK_GENERATOR "TXZ;DEB")
для исключения из создаваемого целью `dist` архива. Например, set(CPACK_PACKAGE_CONTACT "John Doe <john.doe@example.com>")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Useful software")
``` set(CPACK_DEBIAN_PACKAGE_SECTION "misc")
cmake/lib/.git$ set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
set(CPACK_SOURCE_IGNORE_FILES
.git$ .git$
.swp$
obj.*/
_build/
_output/
files/var files/var
CMakeLists.txt.user CMakeLists.txt.user
~$ ~$
\\\\..*\\\\.bak$ \\\\..*\\\\.swp$)
\\\\..*\\\\.tmp$
\\\\..*\\\\.swp$
``` ```