85 lines
3.6 KiB
Diff
85 lines
3.6 KiB
Diff
From 5e67a9b69116329f0195f3004900275869cf6a5d Mon Sep 17 00:00:00 2001
|
|
From: Martchus <martchus@gmx.net>
|
|
Date: Thu, 1 Jun 2017 18:24:14 +0200
|
|
Subject: [PATCH] Make check target depend on .clang-format file
|
|
|
|
---
|
|
cmake/modules/BasicConfig.cmake | 32 ++++++++++++++++++--------------
|
|
1 file changed, 18 insertions(+), 14 deletions(-)
|
|
|
|
diff --git a/cmake/modules/BasicConfig.cmake b/cmake/modules/BasicConfig.cmake
|
|
index d2d16b3..64169ba 100644
|
|
--- a/cmake/modules/BasicConfig.cmake
|
|
+++ b/cmake/modules/BasicConfig.cmake
|
|
@@ -172,15 +172,6 @@ if(NOT META_NO_TIDY)
|
|
endif()
|
|
endif()
|
|
|
|
-# add autotools-style check target
|
|
-if(NOT TARGET check)
|
|
- set(CMAKE_CTEST_COMMAND ${CMAKE_CTEST_COMMAND} -V)
|
|
- add_custom_target(check
|
|
- COMMAND ${CMAKE_CTEST_COMMAND}
|
|
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
- )
|
|
-endif()
|
|
-
|
|
# enable testing
|
|
enable_testing()
|
|
get_directory_property(HAS_PARENT PARENT_DIRECTORY)
|
|
@@ -201,28 +192,31 @@ if(NOT META_NO_TIDY AND EXISTS "${CLANG_FORMAT_RULES}")
|
|
if(FORMATABLE_FILES)
|
|
list(REMOVE_ITEM FORMATABLE_FILES "")
|
|
|
|
+ add_custom_command(
|
|
+ OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format"
|
|
+ COMMAND "${CMAKE_COMMAND}" -E create_symlink "${CLANG_FORMAT_RULES}" "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format"
|
|
+ COMMENT "Linking coding style from ${CLANG_FORMAT_RULES}"
|
|
+ )
|
|
add_custom_target("${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tidy"
|
|
COMMAND "${CLANG_FORMAT_BIN}" -style=file -i ${FORMATABLE_FILES}
|
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
|
COMMENT "Tidying ${META_PROJECT_NAME} sources using clang-format"
|
|
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format"
|
|
)
|
|
if(NOT TARGET tidy)
|
|
add_custom_target(tidy)
|
|
endif()
|
|
add_dependencies(tidy "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tidy")
|
|
- add_custom_target("${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_link_codingstyle"
|
|
- COMMAND "${CMAKE_COMMAND}" -E create_symlink "${CLANG_FORMAT_RULES}" "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format"
|
|
- COMMENT "Linking coding style from ${CLANG_FORMAT_RULES}"
|
|
- )
|
|
- add_dependencies("${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tidy" "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_link_codingstyle")
|
|
|
|
# also add a test to verify whether sources are tidy
|
|
add_test(NAME "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tidy_test"
|
|
COMMAND "${CLANG_FORMAT_BIN}" -output-replacements-xml -style=file ${FORMATABLE_FILES}
|
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
|
)
|
|
+ list(APPEND CHECK_TARGET_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format")
|
|
set_tests_properties("${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tidy_test" PROPERTIES
|
|
FAIL_REGULAR_EXPRESSION "<replacement.*>.*</replacement>"
|
|
+ REQUIRED_FILES "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format"
|
|
)
|
|
endif()
|
|
else()
|
|
@@ -232,4 +226,14 @@ else()
|
|
message(WARNING "No rules to invoke clang-format for ${META_PROJECT_NAME} present")
|
|
endif()
|
|
|
|
+# add autotools-style check target
|
|
+if(NOT TARGET check)
|
|
+ set(CMAKE_CTEST_COMMAND ${CMAKE_CTEST_COMMAND} -V)
|
|
+ add_custom_target(check
|
|
+ COMMAND ${CMAKE_CTEST_COMMAND}
|
|
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
+ DEPENDS "${CHECK_TARGET_DEPENDS}"
|
|
+ )
|
|
+endif()
|
|
+
|
|
set(BASIC_PROJECT_CONFIG_DONE YES)
|
|
--
|
|
2.13.0
|
|
|