37 lines
1.3 KiB
CMake
37 lines
1.3 KiB
CMake
|
# 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()
|