CMake版本升级

CMake 是一个可扩展的开源系统,以独立于编译器的方式在操作系统中管理生成过程。与许多跨平台系统不同,CMake 旨在与本机生成环境结合使用。放置在每个源目录中的简单配置文件(称为 CMakeLists.txt 文件)用于生成标准生成文件(例如,在 Unix 上生成文件,在 Windows MSVC 中生成项目/工作区),这些文件以通常的方式使用。CMake 可以生成本机生成环境,该环境将编译源代码、创建库、生成包装和任意组合生成可执行文件。CMake 支持就地和出位生成,因此可以支持来自单个源树的多个生成。CMake 还支持静态和动态库生成。CMake 的另一个不错的功能是,它生成一个缓存文件,该文件旨在与图形编辑器一起使用。例如,当 CMake 运行时,它会查找文件、库和可执行文件,并且可能会遇到可选的生成指令。此信息将收集到缓存中,用户可能会在生成本机生成文件之前更改这些信息。

更新过程

首先下载CMake的源代码,登录CMake官网下载列表即可下载源码。

aria2c -s 4 -c https://cmake.org/files/LatestRelease/cmake-3.15.1.tar.gz

注意:请根据自己的实际情况下载。

然后解压程序。

tar -zxvf cmake-3.15.1.tar.gz

然后进入到目录,并编译。需要注意的是需要保证你的电脑最初有一版本的CMake,否则可能将无法正常编译。

cd cmake-3.15.1
mkdir -p build
cd build
cmake ..
make -j10

如果你才用上述的命令编译,那么默认安装位置是/usr/bin,所以会覆盖你原先的目录,并且不用配置环境变量,当需要其他版本时候可以重新覆盖安装。

cd cmake-3.15.1/build
sudo make install -j10

程序会自动安装CMake到你的用户目录里面,然后检查版本信息:

cmake --version

Python脚本如下

为了方便大家使用,下面有一个Python脚本可以全称自动化的帮助你安装和更新CMake,只需要在下面设置你的版本信息和超级用户的密码即可,然后运行python3 cmake_upgrade.py指令即可自动安装和更新CMake。

pms={
	"sudo":"123456", # 在这里设置你的超级用户密码
	"version":"3.15.2" # 在这里设置你的版本信息
}

Python脚本

import os

def download(pms):
	os.system("echo {} | sudo -S apt-get install -y aria2".format(pms["sudo"]))
	os.system("aria2c -s 2 -c -o cmake-{}.tar.gz https://cmake.org/files/v{}/cmake-{}.tar.gz".format(pms["version"],pms["version"][0:pms["version"].rindex('.')],pms["version"]))
	print("download the file done!")
	
	os.system("tar -xvf cmake-{}.tar.gz".format(pms["version"]))
	print("tar the file done!")

def themake(pms):
	os.system("mkdir -p build && cd build && rm -rf ./* && cmake ../cmake-{}/ && make -j".format(pms["version"]))
	print("make done!")

def build(pms):
	print("begin the task!")
	download(pms)
	themake(pms)
	os.system("cd build && (echo {} | sudo -S  make install -j)".format(pms["sudo"]))
	print("---------------------------")
	print("|\tInstall Done")
	print("---------------------------")
	os.system("cmake --version")
	print("---------------------------")

pms={
	"sudo":"123456", # 在这里设置你的超级用户密码
	"version":"3.15.2" # 在这里设置你的版本信息
}

build(pms)

注意的是程序使用的是默认位置,即:覆盖原先的CMake,所以还是要慎重。

posted @ 2019-11-19 19:05  牧轩居士  阅读(1824)  评论(0)    收藏  举报