From 89268052c019619458c921d35439a6223c2c49e2 Mon Sep 17 00:00:00 2001 From: Ilya Churaev Date: Fri, 22 May 2026 21:07:40 +0300 Subject: [PATCH 1/2] Update version detection --- autoload/cmake4vim.vim | 13 +++++--- autoload/utils/cmake.vim | 32 ++++++++++---------- autoload/utils/cmake/version.vim | 52 ++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 21 deletions(-) create mode 100644 autoload/utils/cmake/version.vim diff --git a/autoload/cmake4vim.vim b/autoload/cmake4vim.vim index 1a1f544c..dffd4003 100644 --- a/autoload/cmake4vim.vim +++ b/autoload/cmake4vim.vim @@ -231,20 +231,23 @@ function! cmake4vim#CTest(bang, ...) abort if !a:bang if type(g:cmake_ctest_args) == v:t_list let l:args += g:cmake_ctest_args - call extend(l:args, g:cmake_ctest_args) else call extend(l:args, [g:cmake_ctest_args]) endif endif - if !utils#cmake#verNewerOrEq([3, 20]) + + " Use --test-dir for modern CMake versions, otherwise use directory change + if utils#cmake#version#verNewerOrEq([3, 20]) + call extend(l:args, ['--test-dir', utils#fs#fnameescape(l:build_dir)]) + else " Change work directory silent exec 'cd' l:build_dir - else - call extend(l:args, ['--test-dir', utils#fs#fnameescape(l:build_dir)]) endif + " Run call utils#common#executeCommand(printf('%s %s', l:cmd, join(l:args)), 1) - if !utils#cmake#verNewerOrEq([3, 20]) + + if !utils#cmake#version#verNewerOrEq([3, 20]) " Change work directory to old work directory silent exec 'cd' l:cw_dir endif diff --git a/autoload/utils/cmake.vim b/autoload/utils/cmake.vim index d27bd493..7d364b77 100644 --- a/autoload/utils/cmake.vim +++ b/autoload/utils/cmake.vim @@ -141,6 +141,16 @@ function! utils#cmake#getDefaultBuildTypes() abort return ['Release', 'Debug', 'RelWithDebInfo', 'MinSizeRel', ''] endfunction +" Returns the path to build directory if directory was found and returns empty string in other case. +" Use build directory from the cmake cache or try to find it at the current folder +" Creates directory if it doesn't exist +function! utils#cmake#getBuildDir() abort + let l:build_dir = s:detectCMakeBuildDir() + let l:build_dir = utils#fs#makeDir(l:build_dir) + let l:build_dir = fnamemodify(l:build_dir, ':p:h') + return l:build_dir +endfunction + " Return the names of possible builds, includes default CMake build types function! utils#cmake#getCMakeVariants() abort call s:populateDefaultCMakeVariants() @@ -160,20 +170,7 @@ function! utils#cmake#getVersion() abort return l:version endfunction -" Return 1 if cmake version is newer or equal to passed value -function! utils#cmake#verNewerOrEq(cmake_version) abort - let l:i = 0 - let l:cmake_ver = utils#cmake#getVersion() - while l:i < len(a:cmake_version) && l:i < len(l:cmake_ver) - if a:cmake_version[l:i] > l:cmake_ver[l:i] - return 0 - elseif a:cmake_version[l:i] < l:cmake_ver[l:i] - return 1 - endif - let l:i += 1 - endwhile - return 1 -endfunction + " Set CMake build target function! utils#cmake#setBuildTarget(build_dir, target) abort @@ -258,10 +255,13 @@ function! utils#cmake#getCMakeGenerationCommand(...) abort let l:cmake_args += l:cmake_variant_usr_args + get(l:, 'cmake_kit_usr_args', []) let l:cmake_args += a:000 - " CMake -B option was introduced in the 3.13 version - if utils#cmake#verNewerOrEq([3, 13]) + " Check that we have at least CMake 3.13 for -B option, fallback for older versions + let l:has_b_option = utils#cmake#version#verNewerOrEq([3, 13]) + + if l:has_b_option let l:cmake_args += ['-B', utils#fs#fnameescape(l:build_dir), '-S', utils#fs#fnameescape(l:src_dir)] else + " For older CMake versions, use the current directory as source let l:cmake_args += [utils#fs#fnameescape(getcwd())] endif diff --git a/autoload/utils/cmake/version.vim b/autoload/utils/cmake/version.vim new file mode 100644 index 00000000..2e4d7f7b --- /dev/null +++ b/autoload/utils/cmake/version.vim @@ -0,0 +1,52 @@ +" autoload/utils/cmake/version.vim - CMake version handling utilities +" Maintainer: Ilya Churaev + +if !exists('s:cmake_version_cache') + let s:cmake_version_cache = [] +endif + +" Gets CMake version +" Returns array [major, minor, patch] +function! utils#cmake#version#getVersion() abort + if !empty(s:cmake_version_cache) + return s:cmake_version_cache + endif + + let l:version_out = system(g:cmake_executable . ' --version') + let l:version_str = matchstr(l:version_out, '\v\d+.\d+.\d+') + let l:version_exp = split(l:version_str, '\.') + let l:version = [] + for l:val in l:version_exp + let l:version += [str2nr(l:val)] + endfor + let s:cmake_version_cache = l:version + return l:version +endfunction + +" Return 1 if cmake version is newer or equal to passed value +function! utils#cmake#version#verNewerOrEq(cmake_version) abort + let l:cmake_ver = utils#cmake#version#getVersion() + let l:cmake_version = a:cmake_version + if len(l:cmake_version) == 0 + return 1 + endif + if len(l:cmake_ver) == 0 + return 0 + endif + + " Compare versions + for i in range(max([len(l:cmake_version), len(l:cmake_ver)])) + if i >= len(l:cmake_ver) + return 0 + endif + if i >= len(l:cmake_version) + return 1 + endif + if l:cmake_ver[i] > l:cmake_version[i] + return 1 + elseif l:cmake_ver[i] < l:cmake_version[i] + return 0 + endif + endfor + return 1 +endfunction \ No newline at end of file From 3c178a6c437f7938fea12ca6f3dcf5595620f48a Mon Sep 17 00:00:00 2001 From: Ilya Churaev Date: Fri, 22 May 2026 21:18:34 +0300 Subject: [PATCH 2/2] Update method name --- autoload/cmake4vim.vim | 16 +++---- autoload/utils/cmake/fileapi.vim | 2 +- test/tests/basic/cmake_version.vader | 42 +++++++++---------- test/tests/basic/generate_cmake_project.vader | 2 +- test/tests/basic/plugin_initialization.vader | 2 +- test/tests/build/build_cmake_targets.vader | 30 ++++++------- test/tests/build/ninja_generator.vader | 2 +- test/tests/executors/dispatch.vader | 2 +- test/tests/executors/job.vader | 2 +- test/tests/executors/term.vader | 2 +- test/tests/integration/vimspector.vader | 12 +++--- test/tests/run/ctest.vader | 14 +++---- test/tests/run/run_target.vader | 14 +++---- 13 files changed, 71 insertions(+), 71 deletions(-) diff --git a/autoload/cmake4vim.vim b/autoload/cmake4vim.vim index dffd4003..b34c211d 100644 --- a/autoload/cmake4vim.vim +++ b/autoload/cmake4vim.vim @@ -68,13 +68,13 @@ function! cmake4vim#GenerateCMake(...) abort " For old CMake version need to change the directory to generate CMake project " -B option was introduced only in CMake 3.13 let l:cw_dir = getcwd() - if !utils#cmake#verNewerOrEq([3, 13]) + if !utils#cmake#version#verNewerOrEq([3, 13]) " Change work directory silent exec 'cd' l:build_dir endif " Generates CMake project call utils#common#executeCommand(l:cmake_cmd, 0, getcwd(), s:getCMakeErrorFormat()) - if !utils#cmake#verNewerOrEq([3, 13]) + if !utils#cmake#version#verNewerOrEq([3, 13]) " Change work directory to old work directory silent exec 'cd' l:cw_dir endif @@ -189,7 +189,7 @@ function! cmake4vim#CompileSource(...) abort let l:generator = l:cache_info['cmake']['generator'] let l:target_name = '' - if l:generator =~# 'Unix Makefiles' || utils#cmake#verNewerOrEq([ 3, 14 ]) + if l:generator =~# 'Unix Makefiles' || utils#cmake#version#verNewerOrEq([ 3, 14 ]) let l:target_name = utils#gen#common#getSingleUnitTargetName(l:generator, l:source_name) else let l:prefix = '' @@ -200,7 +200,7 @@ function! cmake4vim#CompileSource(...) abort for i in range(len(l:subfolders)) let l:prefix .= '../' endfor - if utils#cmake#verNewerOrEq([3, 13]) + if utils#cmake#version#verNewerOrEq([3, 13]) let l:target_name = '"' . l:prefix . l:source_name . '^' . '"' else let l:target_name = l:prefix . fnameescape(l:source_name) . '^' @@ -209,7 +209,7 @@ function! cmake4vim#CompileSource(...) abort endif " TODO: find the middle point - if !utils#cmake#verNewerOrEq([ 3, 13 ]) + if !utils#cmake#version#verNewerOrEq([ 3, 13 ]) let l:target_name = printf('"%s"', l:target_name) endif @@ -235,7 +235,7 @@ function! cmake4vim#CTest(bang, ...) abort call extend(l:args, [g:cmake_ctest_args]) endif endif - + " Use --test-dir for modern CMake versions, otherwise use directory change if utils#cmake#version#verNewerOrEq([3, 20]) call extend(l:args, ['--test-dir', utils#fs#fnameescape(l:build_dir)]) @@ -243,10 +243,10 @@ function! cmake4vim#CTest(bang, ...) abort " Change work directory silent exec 'cd' l:build_dir endif - + " Run call utils#common#executeCommand(printf('%s %s', l:cmd, join(l:args)), 1) - + if !utils#cmake#version#verNewerOrEq([3, 20]) " Change work directory to old work directory silent exec 'cd' l:cw_dir diff --git a/autoload/utils/cmake/fileapi.vim b/autoload/utils/cmake/fileapi.vim index c907675f..efe2ef19 100644 --- a/autoload/utils/cmake/fileapi.vim +++ b/autoload/utils/cmake/fileapi.vim @@ -100,7 +100,7 @@ endfunction " }}} Private functions " function! utils#cmake#fileapi#prepare(build_dir) abort - if !(utils#cmake#verNewerOrEq([3, 14])) + if !(utils#cmake#version#verNewerOrEq([3, 14])) return endif let l:reply_folder = s:getReplyFolder(a:build_dir) diff --git a/test/tests/basic/cmake_version.vader b/test/tests/basic/cmake_version.vader index 6e13be0e..7a49f159 100644 --- a/test/tests/basic/cmake_version.vader +++ b/test/tests/basic/cmake_version.vader @@ -7,104 +7,104 @@ After: Execute ([CMake version] Check older cmake version): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] - 1, cur_version[1] - 1, cur_version[2] - 1]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] - 1, cur_version[1] - 1, cur_version[2] - 1]), 1 Execute ([CMake version] Check older major, minor cmake version 1): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] - 1, cur_version[1] - 1]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] - 1, cur_version[1] - 1]), 1 Execute ([CMake version] Check older major, minor cmake version 2): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] - 1, cur_version[1] + 1]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] - 1, cur_version[1] + 1]), 1 Execute ([CMake version] Check older major, minor cmake version 3): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] - 1, cur_version[1]]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] - 1, cur_version[1]]), 1 Execute ([CMake version] Check older major, minor cmake version 3): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0], cur_version[1] - 1]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0], cur_version[1] - 1]), 1 Execute ([CMake version] Check older major, minor, path cmake version 1): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] - 1, cur_version[1], cur_version[2] - 1]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] - 1, cur_version[1], cur_version[2] - 1]), 1 Execute ([CMake version] Check older major, minor, path cmake version 2): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] - 1, cur_version[1], cur_version[2] + 1]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] - 1, cur_version[1], cur_version[2] + 1]), 1 Execute ([CMake version] Check older major, minor, path cmake version 3): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] - 1, cur_version[1] - 1, cur_version[2] + 1]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] - 1, cur_version[1] - 1, cur_version[2] + 1]), 1 Execute ([CMake version] Check older major, minor, path cmake version 4): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] - 1, cur_version[1] + 1, cur_version[2] + 1]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] - 1, cur_version[1] + 1, cur_version[2] + 1]), 1 Execute ([CMake version] Check older major, minor, path cmake version 5): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0], cur_version[1], cur_version[2] - 1]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0], cur_version[1], cur_version[2] - 1]), 1 Execute ([CMake version] Check newer cmake version): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] + 1, cur_version[1] + 1, cur_version[2] + 1]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] + 1, cur_version[1] + 1, cur_version[2] + 1]), 0 Execute ([CMake version] Check newer major, minor cmake version 1): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] + 1, cur_version[1] - 1]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] + 1, cur_version[1] - 1]), 0 Execute ([CMake version] Check newer major, minor cmake version 2): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] + 1, cur_version[1] + 1]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] + 1, cur_version[1] + 1]), 0 Execute ([CMake version] Check newer major, minor cmake version 3): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] + 1, cur_version[1]]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] + 1, cur_version[1]]), 0 Execute ([CMake version] Check newer major, minor cmake version 3): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0], cur_version[1] + 1]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0], cur_version[1] + 1]), 0 Execute ([CMake version] Check newer major, minor, path cmake version 1): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] + 1, cur_version[1], cur_version[2] - 1]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] + 1, cur_version[1], cur_version[2] - 1]), 0 Execute ([CMake version] Check newer major, minor, path cmake version 2): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] + 1, cur_version[1], cur_version[2] + 1]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] + 1, cur_version[1], cur_version[2] + 1]), 0 Execute ([CMake version] Check newer major, minor, path cmake version 3): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] + 1, cur_version[1] - 1, cur_version[2] + 1]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] + 1, cur_version[1] - 1, cur_version[2] + 1]), 0 Execute ([CMake version] Check newer major, minor, path cmake version 4): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0] + 1, cur_version[1] + 1, cur_version[2] + 1]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0] + 1, cur_version[1] + 1, cur_version[2] + 1]), 0 Execute ([CMake version] Check newer major, minor, path cmake version 5): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0], cur_version[1], cur_version[2] + 1]), 0 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0], cur_version[1], cur_version[2] + 1]), 0 Execute ([CMake version] Check equal cmake version): let cur_version = utils#cmake#getVersion() AssertEqual len(cur_version), 3 - AssertEqual utils#cmake#verNewerOrEq([cur_version[0], cur_version[1], cur_version[2]]), 1 + AssertEqual utils#cmake#version#verNewerOrEq([cur_version[0], cur_version[1], cur_version[2]]), 1 diff --git a/test/tests/basic/generate_cmake_project.vader b/test/tests/basic/generate_cmake_project.vader index 708e75d3..77c87683 100644 --- a/test/tests/basic/generate_cmake_project.vader +++ b/test/tests/basic/generate_cmake_project.vader @@ -151,7 +151,7 @@ Execute ([CMake generate] Call prepare file API after project generation): endif Execute ([CMake generate] Generate cmake project in custom source folder): - if utils#cmake#verNewerOrEq([3, 13]) + if utils#cmake#version#verNewerOrEq([3, 13]) Assert !isdirectory("cmake-build-Release"), "Build directory shouldn't exist" let g:cmake_src_dir='test proj' cd .. diff --git a/test/tests/basic/plugin_initialization.vader b/test/tests/basic/plugin_initialization.vader index 4accfdc8..2d0755f6 100644 --- a/test/tests/basic/plugin_initialization.vader +++ b/test/tests/basic/plugin_initialization.vader @@ -21,7 +21,7 @@ Execute ([Plugin Initialization] Check default initialization): let cmake_info = utils#cmake#common#getInfo() let cmake_gen = cmake_info['cmake']['generator'] " Disable this check for windows with cmake 2.8 - if !has('win32') || utils#cmake#verNewerOrEq([3, 0]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 0]) if stridx(cmake_gen, utils#gen#vs#getGeneratorName()) != -1 AssertEqual g:cmake_build_target, "ALL_BUILD" else diff --git a/test/tests/build/build_cmake_targets.vader b/test/tests/build/build_cmake_targets.vader index 1fcdf115..1bffd5f9 100644 --- a/test/tests/build/build_cmake_targets.vader +++ b/test/tests/build/build_cmake_targets.vader @@ -11,7 +11,7 @@ After: Execute ([CMake targets] Generate cmake project with default settings): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" silent CMake Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" @@ -29,7 +29,7 @@ Execute ([CMake targets] Generate cmake project with default settings): Execute ([CMake targets] Generate cmake project with custom options): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" let g:cmake_usr_args='-DCUSTOM_OP=ON' silent CMake @@ -50,7 +50,7 @@ Execute ([CMake targets] Generate cmake project with custom options): Execute ([CMake targets] Generate cmake project with custom options as argument): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" silent CMake -DCUSTOM_OP=ON Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" @@ -70,7 +70,7 @@ Execute ([CMake targets] Generate cmake project with custom options as argument) Execute ([CMake targets] Check CMake generator): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" silent CMake Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" @@ -86,7 +86,7 @@ Execute ([CMake targets] Check CMake generator): Execute ([CMake targets] Check CMakeClean): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" silent CMake Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" @@ -110,7 +110,7 @@ Execute ([CMake targets] Check CMakeClean): Execute ([CMake targets] Build only library with arguments): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" silent CMake Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" @@ -127,7 +127,7 @@ Execute ([CMake targets] Build only library with arguments): Execute ([CMake targets] CMakeBuild for test library): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) " Check that make command works with changed build command Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" silent CMake @@ -145,7 +145,7 @@ Execute ([CMake targets] CMakeBuild for test library): Execute ([CMake targets] Check all targets): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) silent CMake Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" let targets = cmake4vim#GetAllTargets() @@ -154,7 +154,7 @@ Execute ([CMake targets] Check all targets): Execute ([CMake targets] Get cmake targets): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" silent CMake Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" @@ -219,7 +219,7 @@ Execute ([CMake targets] Get default build types): Execute ([CMake targets] Check all targets for empty project): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should not be generated" let targets = cmake4vim#GetAllTargets() AssertEqual len(targets), 0, 'CMake targets should be empty but: ' . join(targets, ' ') @@ -227,7 +227,7 @@ Execute ([CMake targets] Check all targets for empty project): Execute ([CMake targets] Check clean target for empty project): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should not be generated" let default = utils#gen#common#getCleanTarget() AssertEqual default, '' @@ -235,7 +235,7 @@ Execute ([CMake targets] Check clean target for empty project): Execute ([CMake targets] Check default target for empty project): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should not be generated" let default = utils#gen#common#getDefaultTarget() AssertNotEqual default, '' @@ -243,7 +243,7 @@ Execute ([CMake targets] Check default target for empty project): Execute ([CMake targets] Select all targets for empty project): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should not be generated" let cmd = cmake4vim#SelectTarget('all') AssertEqual cmd, '' @@ -252,7 +252,7 @@ Execute ([CMake targets] Select all targets for empty project): Execute ([CMake targets] Call CMakeBuild for empty project): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should not be generated" silent CMakeBuild Assert !filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should not be generated" @@ -260,7 +260,7 @@ Execute ([CMake targets] Call CMakeBuild for empty project): Execute ([CMake targets] Check CMakeClean for empty project): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" CMakeClean Assert !isdirectory("cmake-build-Release"), "Build directory should not exist" diff --git a/test/tests/build/ninja_generator.vader b/test/tests/build/ninja_generator.vader index 938b3e7c..7432aab4 100644 --- a/test/tests/build/ninja_generator.vader +++ b/test/tests/build/ninja_generator.vader @@ -126,7 +126,7 @@ Execute ([Ninja] Build single unit with build in source): endif Execute ([Ninja] Build single unit with build in source, with spaces): - if !has('win32') && utils#cmake#verNewerOrEq([3, 13]) " skip for windows + if !has('win32') && utils#cmake#version#verNewerOrEq([3, 13]) " skip for windows Assert !isdirectory("cmake-build-Release"), "Build directory shouldn't exist" silent CMake Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" diff --git a/test/tests/executors/dispatch.vader b/test/tests/executors/dispatch.vader index 229c0c5d..d28ad538 100644 --- a/test/tests/executors/dispatch.vader +++ b/test/tests/executors/dispatch.vader @@ -31,7 +31,7 @@ Execute ([Dispatch executor] Generate cmake project with default settings): endif Execute ([Dispatch executor] Build and run target): - if !has('win32') && utils#cmake#verNewerOrEq([3, 14]) " Skip for Windows and old CMake versions + if !has('win32') && utils#cmake#version#verNewerOrEq([3, 14]) " Skip for Windows and old CMake versions let old_rtp = &rtp set rtp+=$HOME/.vim/plugged/vim-dispatch set rtp+=$HOME/.vim/plugged/vim-dispatch/autoload diff --git a/test/tests/executors/job.vader b/test/tests/executors/job.vader index c5aa2df3..0a023837 100644 --- a/test/tests/executors/job.vader +++ b/test/tests/executors/job.vader @@ -71,7 +71,7 @@ Execute ([Job executor] Run job and don't mess up the alternate file): call WaitForJob() Execute ([Job executor] Run test_app target with mask arguments with job executor): - if utils#cmake#verNewerOrEq([3, 14]) + if utils#cmake#version#verNewerOrEq([3, 14]) silent CMake call WaitForJob() silent CMakeSelectTarget test_app diff --git a/test/tests/executors/term.vader b/test/tests/executors/term.vader index 3876db21..8fe19bb3 100644 --- a/test/tests/executors/term.vader +++ b/test/tests/executors/term.vader @@ -46,7 +46,7 @@ Execute ([Term executor] Append job to empty pool): Execute ([Term executor] Run test_app target with mask arguments with term executor): if !has('win32') " Skip for Windows - if utils#cmake#verNewerOrEq([3, 14]) + if utils#cmake#version#verNewerOrEq([3, 14]) silent CMake call WaitForJob() silent CMakeSelectTarget test_app diff --git a/test/tests/integration/vimspector.vader b/test/tests/integration/vimspector.vader index 2c3d7637..41c60ab3 100644 --- a/test/tests/integration/vimspector.vader +++ b/test/tests/integration/vimspector.vader @@ -96,7 +96,7 @@ Execute ([Vimspector] Change correct vimspector config to incorrect data): endif Execute ([Vimspector] Run test_app target and change vimspector config with default config): - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) silent CMake silent CMakeSelectTarget test_app silent CMakeBuild @@ -124,7 +124,7 @@ Execute ([Vimspector] Run test_app target and change vimspector config with defa endif Execute ([Vimspector] Run test_app target and change vimspector config with custom config): - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) let g:cmake_vimspector_default_configuration = { \ 'adapter': 'CodeLLDB', \ 'configuration': { @@ -169,7 +169,7 @@ Expect ([Vimspector] See '1 2 3 F1 test proj' result in quickfix): || 1 2 3 F1 test proj Execute ([Vimspector] Run test_app target with vimspector args): - if !has('win32') && utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') && utils#cmake#version#verNewerOrEq([3, 14]) Assert !filereadable(".vimspector.json"), "Vimspector config should not be generated" " Create incorrect config silent call writefile( readfile( '../../tests/integration/.vimspector.json' ), '.vimspector.json' ) @@ -200,7 +200,7 @@ Expect ([Vimspector] See '1 2 3* 4 F1' result in quickfix): || 1 2 3* 4 F1 app Execute ([Vimspector] Run test_app target with reset vimspector args): - if !has('win32') && utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') && utils#cmake#version#verNewerOrEq([3, 14]) Assert !filereadable(".vimspector.json"), "Vimspector config should not be generated" " Create incorrect config silent call writefile( readfile( '../../tests/integration/.vimspector.json' ), '.vimspector.json' ) @@ -231,7 +231,7 @@ Expect ([Vimspector] See 'F1' result in quickfix): || F1 app Execute ([Vimspector] Read vimspector config containing backslashes): - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !filereadable(".vimspector.json"), "Vimspector config should not be generated" " Create config silent call writefile( readfile( '../../tests/integration/.vimspector.json' ), '.vimspector.json' ) @@ -253,7 +253,7 @@ Execute ([Vimspector] Read vimspector config containing backslashes): endif Execute ([Vimspector] Run all target and check vimspector config): - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) silent CMake silent CMakeSelectTarget all silent CMakeBuild diff --git a/test/tests/run/ctest.vader b/test/tests/run/ctest.vader index 73952ac6..d4f0ac20 100644 --- a/test/tests/run/ctest.vader +++ b/test/tests/run/ctest.vader @@ -2,7 +2,7 @@ Before: silent call OpenTestProject() silent call ResetPluginOptions() - if utils#cmake#verNewerOrEq([3, 12]) + if utils#cmake#version#verNewerOrEq([3, 12]) let g:cmake_build_args='--parallel' else if !has('win32') @@ -21,7 +21,7 @@ Execute ([CTest] Check CTest for empty project): Execute ([CTest] Build project with gtest): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert !isdirectory("cmake-build-Release"), "Build directory shouldn't exist" silent CMake Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" @@ -39,7 +39,7 @@ Execute ([CTest] Build project with gtest): Execute ([CTest] Run tests with default settings): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) if !has('win32') Assert filereadable("cmake-build-Release/app/test_app"), "app should be built" Assert filereadable("cmake-build-Release/tests/unit_tests"), "unit_tests should be built" @@ -55,7 +55,7 @@ Execute ([CTest] Run tests with default settings): Execute ([CTest] CTest with default settings): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) if !has('win32') Assert filereadable("cmake-build-Release/app/test_app"), "app should be built" Assert filereadable("cmake-build-Release/tests/unit_tests"), "unit_tests should be built" @@ -70,7 +70,7 @@ Execute ([CTest] CTest with default settings): Execute ([CTest] CTest check target): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) silent CMakeBuild if !has('win32') AssertEqual g:cmake_build_target, 'all' @@ -93,7 +93,7 @@ Execute ([CTest] CTest check target): Execute ([CTest] Run tests with custom settings): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) Assert isdirectory("cmake-build-Release"), "Build directory shouldn't exist" silent CMake -DCUSTOM_OP=ON Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" @@ -113,7 +113,7 @@ Execute ([CTest] Run tests with custom settings): Execute ([CTest] CTest with custom settings): " enable tests for windows with last cmake - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) if !has('win32') Assert filereadable("cmake-build-Release/app/test_app"), "app should be built" Assert filereadable("cmake-build-Release/tests/unit_tests"), "unit_tests should be built" diff --git a/test/tests/run/run_target.vader b/test/tests/run/run_target.vader index 7232c3e3..197e7ed4 100644 --- a/test/tests/run/run_target.vader +++ b/test/tests/run/run_target.vader @@ -13,7 +13,7 @@ Execute ([CMakeRun] Should not find non-binary target): AssertEqual result, '' Execute ([CMakeRun] Should not find library target): - if utils#cmake#verNewerOrEq([3, 14]) + if utils#cmake#version#verNewerOrEq([3, 14]) Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" CMakeSelectTarget test_lib let result = utils#cmake#getBinaryPath() @@ -27,7 +27,7 @@ Execute ([CMakeRun] Should find binary target): if !has('win32') Assert filereadable("cmake-build-Release/app/test_app"), "app should be built" else - if utils#cmake#verNewerOrEq([3, 14]) + if utils#cmake#version#verNewerOrEq([3, 14]) Assert filereadable("cmake-build-Release/app/Debug/test_app.exe"), "app should be built" endif endif @@ -35,7 +35,7 @@ Execute ([CMakeRun] Should find binary target): if !has('win32') AssertEqual utils#fs#fnameescape(result), utils#fs#fnameescape(utils#cmake#getBuildDir() . '/app/test_app') else - if utils#cmake#verNewerOrEq([3, 14]) + if utils#cmake#version#verNewerOrEq([3, 14]) AssertEqual utils#fs#fnameescape(result), utils#fs#fnameescape(utils#cmake#getBuildDir() . '/app/Debug/test_app.exe') endif endif @@ -45,7 +45,7 @@ Execute ([CMakeRun] Run for empty target): silent CMakeRun Execute ([CMakeRun] Run test_app target and open quickfix): - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) silent CMakeSelectTarget test_app silent CMakeBuild silent CMakeRun @@ -63,7 +63,7 @@ Execute ([CMakeRun] Run non-binary target and open quickfix): AssertEqual v:errmsg , 'Executable "all" was not found' Execute ([CMakeRun] Run test_app target with mask arguments): - if !has('win32') || utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') || utils#cmake#version#verNewerOrEq([3, 14]) silent CMakeSelectTarget test_app silent CMakeRun --gtest_filter=Test* else @@ -75,7 +75,7 @@ Execute ([CMakeRun] Run test_app target with mask arguments): AssertEqual '--gtest_filter=Test* F1 test proj', output[0]['text'] Execute ([CMakeRun] Run test_app target with runtime output and open quickfix): - if !has('win32') && utils#cmake#verNewerOrEq([3, 14]) + if !has('win32') && utils#cmake#version#verNewerOrEq([3, 14]) silent CMake -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/tmp silent CMakeSelectTarget test_app silent CMakeBuild @@ -89,7 +89,7 @@ Execute ([CMakeRun] Run test_app target with runtime output and open quickfix): AssertEqual '123 F1 test proj', output[0]['text'] Execute ([CMakeRun] run command builds and executes target): - if utils#cmake#verNewerOrEq([3, 14]) + if utils#cmake#version#verNewerOrEq([3, 14]) silent CMakeResetAndReload Assert filereadable("cmake-build-Release/CMakeCache.txt"), "CMakeCache.txt should be generated" if !has('win32')