将nuttx构建脚本的文件夹复制修改为符号链接

背景:在板子上修改nuttx\boards\arm\{芯片}\{板子}\include\board.h文件,是不会同步到nuttx\{构建目录}\arch\board\board.h的,原因是nuttx的如下脚本所致,他这里调用的是copy_directory :

复制代码
function(nuttx_create_symlink old new)
  if(IS_DIRECTORY ${old} AND CMAKE_HOST_SYSTEM_NAME MATCHES
                             "MSYS|CYGWIN|Windows")
    execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${old} ${new})
  else()
    file(CREATE_LINK ${old} ${new} COPY_ON_ERROR SYMBOLIC)
  endif()
endfunction()

原因是因为windows下创建文件目录符号的软连接时需要管理员权限,所以nuttx开发者才用的复制。带来的后果就是只要修改一下board.h 就要手动复制一次 好麻烦,解决方案:

1.将CMAKE.exe设置为管理员权限.

2.修改脚本:

复制代码
function(nuttx_create_symlink old new)
  if(IS_DIRECTORY ${old} AND CMAKE_HOST_SYSTEM_NAME MATCHES
                             "MSYS|CYGWIN|Windows")    # For MSYS, Cygwin, or Windows, copy the directory instead of creating a symlink
    execute_process(
      COMMAND ${CMAKE_COMMAND} -E create_symlink "${old}" "${new}"
      RESULT_VARIABLE result
      OUTPUT_VARIABLE out
      ERROR_VARIABLE err
    )
    #execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${old} ${new})
  else()
    file(CREATE_LINK ${old} ${new} COPY_ON_ERROR SYMBOLIC)
  endif()
endfunction()

效果:

相关推荐
开心就多写,一点就开心9 小时前
导演视听语言与分镜系统笔记(一):景别系统、机位视点与时空连贯性设计
笔记·aigc·镜头·电影
疯狂打码的少年11 小时前
【计算机网络】IPv6基础(特点、表示法、与IPv4对比)
网络·笔记·计算机网络
泡泡鱼(敲代码中)13 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
江湖人称菠萝包13 小时前
【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter4-进程
windows·笔记
今儿敲了吗15 小时前
03停用词过滤
笔记·python
秦哈哈16 小时前
【Hello Agents】学习笔记(二)
笔记·学习·microsoft
风早爽太17 小时前
Flutter 开发笔记:share_plus 分享插件
笔记·flutter
宵时待雨18 小时前
linux笔记归纳19:网络层协议IP
linux·网络·笔记·网络协议·tcp/ip
javgo.cn18 小时前
Markune:一个开源的 Local-first Markdown 工作区
笔记·编辑器
逆境不可逃19 小时前
Pi Agent 学习笔记:不同模型如何接入同一套工具循环
笔记·学习