Git Product home page Git Product logo

cmake_min_version's Issues

ENH: subset of version checking

This is a nice iterative approach, probably the most straightforward.

Another use case is checking only a subset of certain point releases.
For example, I personally use the latest CMake release, but periodically I want to check that say CMake 3.14 and 3.7 are OK to support a particular Linux distro default or written project requirement.

Windows version downloads 3.19.8 as latest release

See https://github.com/nlohmann/cmake_min_version/actions/runs/5656870273/job/15324758519:

$ python cmake_downloader.py --latest_release

Retrieving URLs...
  0%|          | 0/38 [00:00<?, ?it/s]
  5%|5         | 2/38 [00:00<00:01, 19.35it/s]
 11%|#         | 4/38 [00:00<00:01, 17.23it/s]
 16%|#5        | 6/38 [00:00<00:01, 17.69it/s]
 21%|##1       | 8/38 [00:00<00:01, 16.97it/s]
 26%|##6       | 10/38 [00:00<00:01, 16.60it/s]
 32%|###1      | 12/38 [00:00<00:01, 16.39it/s]
 37%|###6      | 14/38 [00:00<00:01, 15.62it/s]
 42%|####2     | 16/38 [00:00<00:01, 16.38it/s]
 47%|####7     | 18/38 [00:01<00:01, 16.26it/s]
 53%|#####2    | 20/38 [00:01<00:01, 16.18it/s]
 58%|#####7    | 22/38 [00:01<00:00, 16.77it/s]
 63%|######3   | 24/38 [00:01<00:00, 16.51it/s]
 68%|######8   | 26/38 [00:01<00:00, 16.35it/s]
 74%|#######3  | 28/38 [00:01<00:00, 16.89it/s]
 79%|#######8  | 30/38 [00:01<00:00, 16.61it/s]
 84%|########4 | 32/38 [00:01<00:00, 15.81it/s]
 89%|########9 | 34/38 [00:02<00:00, 16.48it/s]
 95%|#########4| 36/38 [00:02<00:00, 15.73it/s]
100%|##########| 38/38 [00:02<00:00, 15.81it/s]
100%|##########| 38/38 [00:02<00:00, 16.36it/s]
Downloading CMake 3.19.8 (1/1)...

The latest release is 3.27.0.

error on (project)

cmake 3.0 - 3.20 have an error on the line 3: project(cmake_min_test1 VERSION 0.1)
on the test project: https://github.com/yalov/cmake_min_test1

I have compiled this project on cmake 3.29.0 (windows 10) and cmake 3.16.3 (ubuntu 20.04, aarch64), so I believe there might be something wrong with the tool.

I use the tool on the windows 10 x64.

powershell output:

PS D:\Repos\cmake_min_version> .\venv\Scripts\python.exe cmake_min_version.py --full_search true D:\Repos\cmake_min_test
1
Found 33 CMake binaries from directory tools

[ 0%] CMake 2.4.8 ✘ error
The source directory "C:/Users/user/AppData/Local/Temp/tmpg8rx3pxp/-Wno-dev" does not exist.
[ 12%] CMake 2.6.4 ✘ error
Error in cmake code at
[ 22%] CMake 2.8.12.2 ✘ error
Error in cmake code at
[ 30%] CMake 3.0.2 ✘ error
CMakeLists.txt:3 (project)
[ 36%] CMake 3.1.3 ✘ error
CMakeLists.txt:3 (project)
[ 42%] CMake 3.2.3 ✘ error
CMakeLists.txt:3 (project)
[ 46%] CMake 3.3.2 ✘ error
CMakeLists.txt:3 (project)
[ 50%] CMake 3.4.3 ✘ error
CMakeLists.txt:3 (project)
[ 53%] CMake 3.5.2 ✘ error
CMakeLists.txt:3 (project)
[ 56%] CMake 3.6.3 ✘ error
CMakeLists.txt:3 (project)
[ 59%] CMake 3.7.2 ✘ error
CMakeLists.txt:3 (project)
[ 61%] CMake 3.8.2 ✘ error
CMakeLists.txt:3 (project)
[ 63%] CMake 3.9.6 ✘ error
CMakeLists.txt:3 (project)
[ 65%] CMake 3.10.3 ✘ error
CMakeLists.txt:3 (project)
[ 67%] CMake 3.11.4 ✘ error
CMakeLists.txt:3 (project)
[ 68%] CMake 3.12.4 ✘ error
CMakeLists.txt:3 (project)
[ 70%] CMake 3.13.5 ✘ error
CMakeLists.txt:3 (project)
[ 71%] CMake 3.14.7 ✘ error
CMakeLists.txt:3 (project)
[ 72%] CMake 3.15.7 ✘ error
CMakeLists.txt:3 (project)
[ 73%] CMake 3.16.9 ✘ error
CMakeLists.txt:3 (project)
[ 74%] CMake 3.17.5 ✘ error
CMakeLists.txt:3 (project)
[ 75%] CMake 3.18.6 ✘ error
CMakeLists.txt:3 (project)
[ 76%] CMake 3.19.8 ✘ error
CMakeLists.txt:3 (project)
[ 77%] CMake 3.20.6 ✘ error
CMakeLists.txt:3 (project)
[ 77%] CMake 3.21.7 ✔ works
[ 78%] CMake 3.22.6 ✔ works
[ 79%] CMake 3.23.5 ✔ works
[ 79%] CMake 3.24.4 ✔ works
[ 80%] CMake 3.25.3 ✔ works
[ 81%] CMake 3.26.6 ✔ works
[ 81%] CMake 3.27.9 ✔ works
[ 82%] CMake 3.28.4 ✔ works
[ 82%] CMake 3.29.0 ✔ works
[100%] Minimal working version: CMake 3.21.7

Error with binary search

I tried project yalov/cmake_min_test1 while downloading more versions of CMake.

First run:

./cmake_min_version.py ~/Downloads/cmake_min_test1/
Found 118 CMake binaries from directory tools

[  0%] CMake 3.11.3   ✔ works
[ 12%] CMake 3.4.1    ✘ error
[ 25%] CMake 3.8.2    ✔ works
[ 38%] CMake 3.6.1    ✘ error
[ 50%] CMake 3.7.1    ✘ error
[ 62%] CMake 3.8.0    ✔ works
[ 86%] CMake 3.7.2    ✘ error
[100%] Minimal working version: CMake 3.8.0

cmake_minimum_required(VERSION 3.8.0)

Second run:

./cmake_min_version.py ~/Downloads/cmake_min_test1/
Found 125 CMake binaries from directory tools

[  0%] CMake 3.12.2   ✔ works
[ 12%] CMake 3.4.3    ✘ error
[ 25%] CMake 3.9.2    ✘ error
[ 38%] CMake 3.10.3   ✔ works
[ 50%] CMake 3.9.6    ✔ works
[ 62%] CMake 3.9.4    ✔ works
[ 86%] CMake 3.9.3    ✘ error
[100%] Minimal working version: CMake 3.9.4

cmake_minimum_required(VERSION 3.9.4)

I need to check why CMake 3.9.3 failed here.

CI is broken

Error:

Version 3.6 with arch x64 not found The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

find_package prevent usage of this tools ?

On a project with find_package, this tool provides:

[glow@arch ~/tmp/cmake_min_version]$ python cmake_min_version.py ~/dev/f3d/f3d/src/examples/
Found 25 CMake binaries from directory tools

[  0%] CMake 3.13.5 ✘ error
       CMakeLists.txt:5 (find_package)
[ 17%] CMake 3.19.8 ✘ error
       CMakeLists.txt:5 (find_package)
[ 33%] CMake 3.22.6 ✘ error
       CMakeLists.txt:5 (find_package)
[ 50%] CMake 3.24.3 ✘ error
       CMakeLists.txt:5 (find_package)
[ 80%] CMake 3.25.2 ✘ error
       CMakeLists.txt:5 (find_package)
[100%] ERROR: Could not find working version.

Not sure if this is an issue or a limitation.

Change --full_search to a flag

Currently, --full_search does not work without explicitly passing a parameter like --full_search True - but also --full_search False works...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.