aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordundargoc <33953936+dundargoc@users.noreply.github.com>2023-06-24 00:29:53 +0200
committerGitHub <noreply@github.com>2023-06-24 00:29:53 +0200
commit46e95909bf898bd295f8009b15a88719733de906 (patch)
treef2de054b7c0b150e2d9d578a1ed787ba2e84edc6
parent4dc86477b674d056b137a3afafd8824f7b7717ec (diff)
downloadrneovim-46e95909bf898bd295f8009b15a88719733de906.tar.gz
rneovim-46e95909bf898bd295f8009b15a88719733de906.tar.bz2
rneovim-46e95909bf898bd295f8009b15a88719733de906.zip
ci: introduce CI_LINT option
This will abort if lint programs are not found, and is meant primarily for the lint job in CI. Supersedes the REQUIRED argument in add_glob_target as it's a superior replacement by being a built-in solution.
-rw-r--r--.github/workflows/test.yml2
-rw-r--r--CMakeLists.txt9
-rw-r--r--cmake/Util.cmake13
3 files changed, 10 insertions, 14 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 14546cb371..bdec96babb 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -48,7 +48,7 @@ jobs:
cmake --build .deps
- if: success() || failure() && steps.abort_job.outputs.status == 'success'
- run: cmake -B build -G Ninja
+ run: cmake -B build -G Ninja -D CI_LINT=ON
- if: "!cancelled()"
name: Determine if run should be aborted
diff --git a/CMakeLists.txt b/CMakeLists.txt
index abd3a57fc0..d0534731b0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -229,11 +229,14 @@ endif()
#
# Lint
#
-find_program(SHELLCHECK_PRG shellcheck)
-find_program(STYLUA_PRG stylua)
+option(CI_LINT "Abort if lint programs not found" OFF)
+if(CI_LINT)
+ set(LINT_REQUIRED "REQUIRED")
+endif()
+find_program(SHELLCHECK_PRG shellcheck ${LINT_REQUIRED})
+find_program(STYLUA_PRG stylua ${LINT_REQUIRED})
add_glob_target(
- REQUIRED
TARGET lintlua-luacheck
COMMAND ${DEPS_BIN_DIR}/luacheck
FLAGS -q
diff --git a/cmake/Util.cmake b/cmake/Util.cmake
index b70f33a302..0d6fa2a4ce 100644
--- a/cmake/Util.cmake
+++ b/cmake/Util.cmake
@@ -4,7 +4,6 @@
# depends on the value of TOUCH_STRATEGY.
#
# Options:
-# REQUIRED - Abort if COMMAND doesn't exist.
#
# Single value arguments:
# TARGET - Name of the target
@@ -53,7 +52,7 @@
# files.
function(add_glob_target)
cmake_parse_arguments(ARG
- "REQUIRED"
+ ""
"TARGET;COMMAND;GLOB_PAT;TOUCH_STRATEGY"
"FLAGS;FILES;GLOB_DIRS;EXCLUDE"
${ARGN}
@@ -61,14 +60,8 @@ function(add_glob_target)
if(NOT ARG_COMMAND)
add_custom_target(${ARG_TARGET})
- if(ARG_REQUIRED)
- add_custom_command(TARGET ${ARG_TARGET}
- COMMAND ${CMAKE_COMMAND} -E echo "${ARG_TARGET}: ${ARG_COMMAND} not found"
- COMMAND false)
- else()
- add_custom_command(TARGET ${ARG_TARGET}
- COMMAND ${CMAKE_COMMAND} -E echo "${ARG_TARGET} SKIP: ${ARG_COMMAND} not found")
- endif()
+ add_custom_command(TARGET ${ARG_TARGET}
+ COMMAND ${CMAKE_COMMAND} -E echo "${ARG_TARGET} SKIP: ${ARG_COMMAND} not found")
return()
endif()