Skip to content
Snippets Groups Projects
Unverified Commit 64c7f447 authored by René Fritze's avatar René Fritze
Browse files

[WIP,cmake] rewire clang format discovery

parent 58048183
No related branches found
No related tags found
No related merge requests found
......@@ -46,25 +46,25 @@ macro(add_analyze)
endif(EXISTS ${ANALYZER})
endmacro(add_analyze)
find_package(ClangFormat 3.7)
macro(add_format)
find_program(FORMAT NAMES clang-format clang-format-3.4 clang-format-3.5 clang-format-3.6 clang-format-3.7 clang-format-3.8 clang-format-3.9)
if(EXISTS ${FORMAT})
message(STATUS "adding format target")
if (NOT TARGET format)
add_custom_target( format SOURCES ${ARGN} )
endif (NOT TARGET format)
foreach(_file ${ARGN})
string(REPLACE "/" "_" fn ${_file})
if(NOT EXISTS ${_file})
# 'fix' relative source defs
set(_file ${CMAKE_CURRENT_SOURCE_DIR}/${_file})
endif(NOT EXISTS ${_file})
add_custom_target("format_${fn}" ${FORMAT} -i -style=file ${_file} )
add_dependencies( format "format_${fn}" )
endforeach(_file )
else()
message(WARNING "not adding format target because clang-format is missing")
endif(EXISTS ${FORMAT})
if(CLANG_FORMAT_FOUND)
message(STATUS "adding format target")
if (NOT TARGET format)
add_custom_target( format SOURCES ${ARGN} )
endif (NOT TARGET format)
foreach(_file ${ARGN})
string(REPLACE "/" "_" fn ${_file})
if(NOT EXISTS ${_file})
# 'fix' relative source defs
set(_file ${CMAKE_CURRENT_SOURCE_DIR}/${_file})
endif(NOT EXISTS ${_file})
add_custom_target("format_${fn}" ${CLANG_FORMAT_BINARY} -i -style=file ${_file} )
add_dependencies( format "format_${fn}" )
endforeach(_file )
else()
message(WARNING "not adding format target because clang-format is missing")
endif(CLANG_FORMAT_FOUND)
endmacro(add_format)
macro(add_forced_doxygen_target)
......
# Use this module by invoking find_package with the form::
#
# find_package(ClangFormat
# [version] # Minimum version e.g. 3.7
# )
#
# optionally pass the minimal version you require like so find_package(ClangFormat 3.7)
# this module set CLANG_FORMAT_EXECUTABLE, CLANG_FORMAT_VERSION
# and CLANG_FORMAT_FOUND accordingly
#
set(CLANG_FORMAT_FOUND 0)
find_program(format_binary NAMES clang-format clang-format-3.6 clang-format-3.7 clang-format-3.8 clang-format-3.9 clang-format-4.0)
if(EXISTS ${format_binary})
execute_process(COMMAND ${format_binary} -version OUTPUT_VARIABLE clang_out )
message("clang verison out" ${clang_out})
string(REGEX REPLACE ".*clang-format version ([0-9]+\\.[0-9]+).*" "\\1" CLANG_FORMAT_VERSION ${clang_out})
set(CLANG_FORMAT_FOUND 1)
set(CLANG_FORMAT_EXECUTABLE ${format_binary})
if(optional argument passed)
check match with CLANG_FORMAT_VERSION
if(not matched)
message(INFO "Requested clang-format >= arg_passed, found ${CLANG_FORMAT_VERSION}"
set(CLANG_FORMAT_FOUND 0)
endif()
endif()
#message("clang-format executable: ${CLANG_FORMAT_EXECUTABLE}")
#message("clang-format version: ${CLANG_FORMAT_VERSION}")
endif()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment