61 lines
2.0 KiB
CMake
61 lines
2.0 KiB
CMake
# * Clang-format only for master project
|
|
if(PTL_CLANG_FORMATTER MATCHES ".*-6")
|
|
unset(PTL_CLANG_FORMATTER CACHE)
|
|
endif()
|
|
|
|
find_program(PTL_CLANG_FORMATTER NAMES clang-format-9 clang-format-mp-9.0 clang-format)
|
|
mark_as_advanced(PTL_CLANG_FORMATTER)
|
|
|
|
find_program(PTL_CMAKE_FORMATTER NAMES cmake-format)
|
|
mark_as_advanced(PTL_CMAKE_FORMATTER)
|
|
|
|
set(PTL_FORMAT_TARGET format)
|
|
if(TARGET format)
|
|
set(PTL_FORMAT_TARGET format-ptl)
|
|
endif()
|
|
|
|
if(PTL_CLANG_FORMATTER)
|
|
set(_Source_DIR ${PROJECT_SOURCE_DIR}/source)
|
|
set(_Example_DIR ${PROJECT_SOURCE_DIR}/examples)
|
|
|
|
file(GLOB_RECURSE headers ${_Source_DIR}/*.hh ${_Source_DIR}/*.icc
|
|
${_Example_DIR}/*.hh ${_Example_DIR}/*.h)
|
|
|
|
file(GLOB_RECURSE sources ${_Source_DIR}/*.cc ${_Source_DIR}/*.c ${_Example_DIR}/*.cc
|
|
${_Example_DIR}/*.cu)
|
|
|
|
add_custom_target(
|
|
${PTL_FORMAT_TARGET}-source
|
|
COMMAND ${PTL_CLANG_FORMATTER} -i ${headers} ${sources}
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
COMMENT
|
|
"Running '${PTL_CLANG_FORMATTER}' on '${_Source_DIR}' and '${_Example_DIR}..."
|
|
SOURCES ${headers} ${sources})
|
|
endif()
|
|
|
|
if(PTL_CMAKE_FORMATTER)
|
|
set(_Source_DIR ${PROJECT_SOURCE_DIR}/source)
|
|
set(_Example_DIR ${PROJECT_SOURCE_DIR}/examples)
|
|
|
|
file(GLOB_RECURSE cmake_files "${PROJECT_SOURCE_DIR}/**/CMakeLists.txt"
|
|
"${PROJECT_SOURCE_DIR}/*.cmake" "${PROJECT_SOURCE_DIR}/*.cmake.in")
|
|
list(REMOVE_ITEM cmake_files "${PROJECT_SOURCE_DIR}/cmake/Modules/FindTBB.cmake")
|
|
|
|
add_custom_target(
|
|
${PTL_FORMAT_TARGET}-cmake
|
|
COMMAND ${PTL_CMAKE_FORMATTER} -i ${cmake_files}
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
COMMENT "Running '${PTL_CMAKE_FORMATTER}'..."
|
|
SOURCES ${cmake_files})
|
|
endif()
|
|
|
|
foreach(_FORMAT_TARGET ${PTL_FORMAT_TARGET}-source)
|
|
# avoid conflicting format targets
|
|
if(NOT TARGET ${PTL_FORMAT_TARGET})
|
|
add_custom_target(${PTL_FORMAT_TARGET})
|
|
endif()
|
|
if(TARGET ${_FORMAT_TARGET})
|
|
add_dependencies(${PTL_FORMAT_TARGET} ${_FORMAT_TARGET})
|
|
endif()
|
|
endforeach()
|