Browse Source

Tests/RunCMake/MultiLint: Extract test preparation code into separate file

Alex Turbov 1 month ago
parent
commit
0d6b5d54b2

+ 2 - 6
Tests/RunCMake/MultiLint/CXX_skip_linting_OFF.cmake

@@ -1,7 +1,3 @@
 enable_language(CXX)
-set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "$<1:${PSEUDO_IWYU}>" -some -args)
-set(CMAKE_CXX_CLANG_TIDY "$<1:${PSEUDO_TIDY}>" -bad)
-set(CMAKE_CXX_CPPLINT "$<1:${PSEUDO_CPPLINT}>" --error)
-set(CMAKE_CXX_CPPCHECK "$<1:${PSEUDO_CPPCHECK}>" -error)
-add_executable(main main.cxx)
-set_source_files_properties(main.cxx PROPERTIES SKIP_LINTING OFF)
+include(${CMAKE_CURRENT_LIST_DIR}/setup_skip_linter_test.cmake)
+setup_skip_linter_test(CXX OFF)

+ 2 - 6
Tests/RunCMake/MultiLint/CXX_skip_linting_ON.cmake

@@ -1,7 +1,3 @@
 enable_language(CXX)
-set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "$<1:${PSEUDO_IWYU}>" -some -args)
-set(CMAKE_CXX_CLANG_TIDY "$<1:${PSEUDO_TIDY}>" -bad)
-set(CMAKE_CXX_CPPLINT "$<1:${PSEUDO_CPPLINT}>" --error)
-set(CMAKE_CXX_CPPCHECK "$<1:${PSEUDO_CPPCHECK}>" -error)
-add_executable(main main.cxx)
-set_source_files_properties(main.cxx PROPERTIES SKIP_LINTING ON)
+include(${CMAKE_CURRENT_LIST_DIR}/setup_skip_linter_test.cmake)
+setup_skip_linter_test(CXX ON)

+ 2 - 6
Tests/RunCMake/MultiLint/C_skip_linting_OFF.cmake

@@ -1,7 +1,3 @@
 enable_language(C)
-set(CMAKE_C_INCLUDE_WHAT_YOU_USE "${PSEUDO_IWYU}" -some -args)
-set(CMAKE_C_CLANG_TIDY "${PSEUDO_TIDY}" -bad)
-set(CMAKE_C_CPPLINT "${PSEUDO_CPPLINT}" --error)
-set(CMAKE_C_CPPCHECK "${PSEUDO_CPPCHECK}" -error)
-add_executable(main main.c)
-set_source_files_properties(main.c PROPERTIES SKIP_LINTING OFF)
+include(${CMAKE_CURRENT_LIST_DIR}/setup_skip_linter_test.cmake)
+setup_skip_linter_test(C OFF)

+ 2 - 6
Tests/RunCMake/MultiLint/C_skip_linting_ON.cmake

@@ -1,7 +1,3 @@
 enable_language(C)
-set(CMAKE_C_INCLUDE_WHAT_YOU_USE "${PSEUDO_IWYU}" -some -args)
-set(CMAKE_C_CLANG_TIDY "${PSEUDO_TIDY}" -bad)
-set(CMAKE_C_CPPLINT "${PSEUDO_CPPLINT}" --error)
-set(CMAKE_C_CPPCHECK "${PSEUDO_CPPCHECK}" -error)
-add_executable(main main.c)
-set_source_files_properties(main.c PROPERTIES SKIP_LINTING ON)
+include(${CMAKE_CURRENT_LIST_DIR}/setup_skip_linter_test.cmake)
+setup_skip_linter_test(C ON)

+ 17 - 0
Tests/RunCMake/MultiLint/setup_skip_linter_test.cmake

@@ -0,0 +1,17 @@
+include_guard()
+
+function(setup_skip_linter_test lang state)
+  if(lang STREQUAL "CXX")
+    set(maybe_genex_pre "$<1:")
+    set(maybe_genex_post ">")
+  endif()
+
+  set(CMAKE_${lang}_INCLUDE_WHAT_YOU_USE "${maybe_genex_pre}${PSEUDO_IWYU}${maybe_genex_post}" -some -args)
+  set(CMAKE_${lang}_CLANG_TIDY "${maybe_genex_pre}${PSEUDO_TIDY}${maybe_genex_post}" -bad)
+  set(CMAKE_${lang}_CPPLINT "${maybe_genex_pre}${PSEUDO_CPPLINT}${maybe_genex_post}" --error)
+  set(CMAKE_${lang}_CPPCHECK "${maybe_genex_pre}${PSEUDO_CPPCHECK}${maybe_genex_post}" -error)
+
+  string(TOLOWER "${lang}" ext)
+  add_executable(main main.${ext})
+  set_source_files_properties(main.${ext} PROPERTIES SKIP_LINTING ${state})
+endfunction()