summarylogtreecommitdiffstats
path: root/0001-Make-check-target-depend-on-.clang-format-file.patch
blob: ff630e0d7634646fac841c2e854e524ee72cc416 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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