Closed skb666 closed 9 months ago
是否可以让 cmake -S. -Bbuild ...
这一步在 config
时就完成(即在 config
时 完成 Makefile 的生成)
menuconfig 这步配置的项 应该只作用于编译时程序中读取的吧
所以综上,
cmake -S. -Bbuild -DVCPKG_HOST_TRIPLET=arm64-linux -DVCPKG_TARGET_TRIPLET=arm64-linux
用于生成 Makefile;使用 python 时生成 Makefile 发生在这一步
./project.py build -DVCPKG_HOST_TRIPLET=arm64-linux -DVCPKG_TARGET_TRIPLET=arm64-linux
且修改文件后第二次构建时可以直接 ./project.py build
。
这个传递的不是全局变量,是 cmake 变量,键、值都外部指定;这么一看,build
支持传入参数已经挺 ok 了!!! :)
确实,有道理,只需要在 build 时传入就好了,一旦生成了makefile就不需要传参了。 但是这样在调用 rebuild 时还是需要传入参数,可能需要小心容易忘记传入而出错
测试了一下,./project.py rebuild
不额外传入参数也可以成功构建,./project.py clean
后 ./project.py build
不带参数也可以成功构建!
对于 vcpkg.cmake
,传入参数是为了自动 install 依赖的包;./project.py clean
或 ./project.py rebuild
没有删除整个 ./build
文件夹;之前通过 vcpkg
自动下载的包仍然保留在 ./build
目录下,包依然存在所以不需要重新根据平台进行下载编译,也就不用传入额外参数!
当使用 --toolchain 指定文件时,是否有方法给该 .cmake 文件传递参数
场景
Android 平台 termux 下该模板配合 vcpkg 进行使用,指定
--toolchain
为${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake
;使用
cmake
编译时,我可以这样进行参数传递:但使用
project.py build
时,使用以下命令进行构建时会显示帮助信息,不能成功构建:尝试及想法
通过修改
tools/cmake/project.py
中参数的解析方式:然后在
build
的处理中,将other_args
里的参数补充传递给cmake
去执行,使得可以使用上面的命令构建成功。但是在
./project.py build
时传参感觉不是那么优雅,怎样才可以使参数传递这个步骤在./project.py config
时完成