window的Slicer的本地编译环境构建

Slicer可以通过cmake的superbuild编译,前提是能上github,如果网络环境不行,编译速度很慢。

所以决定构建一个不需要外网的内网环境的编译环境

不依赖于外网的环境有两种模式,

第一种是不使用Superbuild,直接下载编译依赖库,这种模式适合个人开发,但后期如果需要修改Slicer源码,不好维护,如果不需要修改Slicer的源码,这种模式很好,编译速度也快。

第二种在内网构建一个GitLab的Superbuild的环境,将从github的的链接全部修改指向内网的Gitlab服务器。这样既可以不依赖外网,还可以维护自己的Slicer版本,也可以跟着Slicer大版本同步升级版本。

这篇博客主要就是讲第二种放案

第一步: 找一台能上外网的机器,通过superbuild编译一个slicer,可以编译全部的功能

第二步:建立内网的gitlab工程,将代码上传到内网的gitlab上

举bzip2为例子,在内网的gitlab上创建bzip2的空白工程; https://192.168.3.22/slicer/bzip2.git

进入slicer的编译目录,找到下载的对应的源码目录,

执行一下的git命令
cd existing_repo
git remote rename origin old-origin
git remote add origin https://192.168.3.22/slicer/bzip2.git
git push --set-upstream origin --all
git push --set-upstream origin --tags

第三步,修改slicer源码目录下的SuperBuild目录下External_bzip2.cmake文件的git路径

window的Slicer的本地编译环境构建_第1张图片

  ExternalProject_SetIfNotDefined(
    Slicer_${proj}_GIT_REPOSITORY
    "${EP_GIT_PROTOCOL}://github.com/commontk/bzip2.git"
    QUIET
    )

修改为

  ExternalProject_SetIfNotDefined(
    Slicer_${proj}_GIT_REPOSITORY
    "${EP_GIT_PROTOCOL}://192.168.3.22/slicer/bzip2.git"
    QUIET
    )

第三步确认你内网的的commit的hash存在这个,如果不存在,修改为你内网的git commit的hash就可以

window的Slicer的本地编译环境构建_第2张图片

你可能感兴趣的:(c++)