cmlib/CMLibFormatSources.cmake

38 lines
1.3 KiB
CMake

function(add_format_sources)
list(GET ARGN 0 _target)
set(_sources ${ARGN})
list(REMOVE_AT _sources 0)
if(NOT TARGET format-sources)
add_custom_target(format-sources)
endif()
find_program(UNCRUSTIFY_EXE NAMES uncrustify)
if(UNCRUSTIFY_EXE)
list(APPEND UNCRUSTIFY_OPTS
-lCPP
--replace
--no-backup)
if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/etc/uncrustify/default.cfg)
list(APPEND UNCRUSTIFY_OPTS -c ${CMAKE_SOURCE_DIR}/cmake/etc/uncrustify/default.cfg)
endif()
add_custom_target(format-sources-uncrustify-${_target} COMMAND ${UNCRUSTIFY_EXE} ${UNCRUSTIFY_OPTS} ${_sources})
add_dependencies(format-sources format-sources-uncrustify-${_target})
else()
message(STATUS "CMLIB warning:")
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()
endfunction()