| # format source files with uncrustify |
| |
| # check that format checking is available - always use before SOURCE_FORMAT |
| macro(SOURCE_FORMAT_ENABLE) |
| if(NOT ${ARGC} EQUAL 1) |
| message(FATAL_ERROR "source_format_enable() needs the required Uncrustify version!") |
| endif() |
| |
| find_package(Uncrustify ${ARGV0}) |
| if(UNCRUSTIFY_FOUND) |
| set(SOURCE_FORMAT_ENABLED TRUE) |
| else() |
| set(SOURCE_FORMAT_ENABLED FALSE) |
| endif() |
| endmacro() |
| |
| # files are expected to be a list and relative paths are resolved wtih respect to CMAKE_SOURCE DIR |
| macro(SOURCE_FORMAT) |
| if(NOT ${ARGC}) |
| message(FATAL_ERROR "source_format() needs a list of files to format!") |
| endif() |
| |
| if(SOURCE_FORMAT_ENABLED) |
| add_custom_target(format |
| COMMAND ${UNCRUSTIFY} -c ${CMAKE_SOURCE_DIR}/uncrustify.cfg --no-backup --replace ${ARGN} |
| WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
| COMMENT "Formating sources with ${UNCRUSTIFY} ...") |
| |
| add_custom_target(format-check |
| COMMAND ${UNCRUSTIFY} -c ${CMAKE_SOURCE_DIR}/uncrustify.cfg --check ${ARGN} |
| WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
| COMMENT "Checking format of the sources with ${UNCRUSTIFY} ...") |
| |
| set(SOURCE_FORMAT_ENABLED TRUE) |
| endif() |
| endmacro() |