在CMake中任意时候执行python脚本,可以使用excess_process 或者excess_program命令。
在CMake中想要在编译target前执行python脚本,因此增加了如下custom target:
add_custom_target(3rdPartyTarget
COMMAND echo "3rdPartyTarget task start"
COMMAND python ${CMAKE_SOURCE_DIR}/xxx.py -d ${CMAKE_SOURCE_DIR} -p win
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
add_dependencies(${target} 3rdPartyTarget)
但是由于在python脚本中包含了os.symlink(path,link)
函数的调用,需要管理员权限,会提示错误:
Symbolic link privilege not held
解决办法:
1、try subprocess.check_call('mklink /J "%s" "%s"' % (gyaisdk_link, gyaisdk_path), shell=True)
intead os.symlink(path,link)
2、Put Windows into Developer Mode: Settings → Updates & Security → For Developers → Use developer features: Select “Developer mode”
Restart computer, and once again try Python script above to see that Python can create symbolic links.
If it’s still not possible to create symbolic links, you may simply need to use Python ≥ 3.8.