kicad 开源项目的编译

kicad是一个比较成熟的pcb开源项目,拥有 ngspice电路仿真,pcb设计,元件封装,3d预览等功能。

而且这个软件的社区很活跃,中国开源社区也在 gitee 上维护一个开源社区为大家解决问题。

我这里来简单记录下我的 kicad源码编译的环境搭建过程。

最开始参考kicad 的官网文档来搭建,由于太基础,很多包的下载网速不敢恭维,严重影响进度,虽感觉一线希望,但曙光渺茫,于是放弃了。

后来迂回战术,用docker的环境搭建的方式来完成,官方有提供一个docker镜像,但是应该是环境维护不够,编译的环境版本不能满足。

由于给kicad的编译环境尽量满足最新版本,我这里给kicad弄了一个新的ubuntu的docker镜像,用得ubuntu最新的 20.04 版本(目前:2020-07-29)

sudo docker pull ubuntu

clone kicad的源码,然后运行docker:

sudo docker run -it --name kicad_builder -v $PWD/kicad-source-mirror:/kicad   ubuntu  /bin/bash

在docker环境搭建,运行:

cd /kicad
apt-get update -q \
&&     apt-get install --no-install-recommends --no-upgrade -qqy cmake \
                build-essential g++ libwxgtk3.0-gtk3-dev libglew-dev \
                libglm-dev libcurl4-gnutls-dev libcairo2-dev libboost-dev \
                libboost-test-dev libboost-filesystem-dev libboost-system-dev \
                libboost-regex-dev git autoconf libtool automake  flex bison \
                liboce-foundation-dev liboce-ocaf-dev swig python python-dev \
                ca-certificates python-wxgtk3.0 python-wxgtk3.0-dev doxygen \
                graphviz libssl-dev ccache curl 

# 建议这个clone在主机上完成,可以采用网页下载或者国内镜像下载的方式获取
git clone git://git.code.sf.net/p/ngspice/ngspice 
# 
cd ngspice \
&&     git checkout ngspice-30-2 \
&&     ./autogen.sh \
&&     ./configure --with-ngshared --enable-xspice --enable-cider --enable-openmp \
&&     make -j$(nproc) \
&&     make install

# 建议这个clone在主机上完成,可以采用网页下载或者国内镜像下载的方式获取
curl -O -J -L https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
#
chmod +x linuxdeploy-x86_64.AppImage \
&&     ./linuxdeploy-x86_64.AppImage --appimage-extract \
&&     mv squashfs-root /usr/lib/linuxdeploy \
&&     ln -s /usr/lib/linuxdeploy/AppRun /bin/linuxdeploy \
&&     chmod -R 775 /usr/lib/linuxdeploy/

apt-get install -y openjdk-8-jdk

apt-get install -y curl wget

mkdir -p /opt/app-root/jenkins /home/jenkins \
&&     chown -R 1001:0 /opt/app-root/jenkins /home/jenkins \
&&     chmod -R g+w /opt/app-root/jenkins /home/jenkins \
&&     chmod 664 /etc/passwd \
&&     chmod -R 775 /usr/lib/jvm \
&&     chmod 775 /usr/bin

chmod +rwx /usr/local/bin/*

编译:

cd /kicad
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)

编译过程大致如下:

Scanning dependencies of target clipper
Scanning dependencies of target othermath
Scanning dependencies of target markdown_lib
Scanning dependencies of target dxflib_qcad
Scanning dependencies of target libcontext
Scanning dependencies of target nanosvg
Scanning dependencies of target ttl
Scanning dependencies of target tinyspline_lib
[  0%] Building CXX object thirdparty/nanosvg/CMakeFiles/nanosvg.dir/nanosvg.cpp.o
[  0%] Building C object thirdparty/tinyspline_lib/CMakeFiles/tinyspline_lib.dir/tinyspline.c.o
[  0%] Building CXX object thirdparty/libcontext/CMakeFiles/libcontext.dir/libcontext.cpp.o
[  0%] Building CXX object thirdparty/clipper/CMakeFiles/clipper.dir/clipper.cpp.o
[  0%] Building CXX object thirdparty/dxflib_qcad/CMakeFiles/dxflib_qcad.dir/dl_dxf.cpp.o
[  0%] Building CXX object thirdparty/other_math/CMakeFiles/othermath.dir/math_for_graphics.cpp.o
[  0%] Building CXX object thirdparty/ttl/CMakeFiles/ttl.dir/src/halfedge/hetriang.cpp.o
[  0%] Building CXX object thirdparty/markdown2html/CMakeFiles/markdown_lib.dir/markdown2html.cpp.o
[  0%] Built target libcontext
Scanning dependencies of target potrace
[  0%] Building CXX object thirdparty/potrace/CMakeFiles/potrace.dir/src/bitmap_io.cpp.o
[  0%] Building CXX object thirdparty/tinyspline_lib/CMakeFiles/tinyspline_lib.dir/tinysplinecpp.cpp.o
[  0%] Building CXX object thirdparty/potrace/CMakeFiles/potrace.dir/src/curve.cpp.o
[  0%] Building CXX object thirdparty/potrace/CMakeFiles/potrace.dir/src/decompose.cpp.o
[  0%] Linking CXX static library libtinyspline_lib.a
[  0%] Built target tinyspline_lib
Scanning dependencies of target bitmaps
[  0%] Linking CXX static library libnanosvg.a

... ...

[ 98%] Built target pcbnew_kiface_objects
Scanning dependencies of target pcbnew_kiface
[ 98%] Linking CXX shared module _pcbnew.kiface
[ 98%] Built target pcbnew_kiface
Scanning dependencies of target pcbnew_python_module
Scanning dependencies of target pcbnew
[ 98%] Creating python's pcbnew native module _pcbnew.so for command line use.
[ 98%] Built target pcbnew_python_module
[ 98%] Building CXX object pcbnew/CMakeFiles/pcbnew.dir/__/common/single_top.cpp.o
[ 98%] Linking CXX executable pcbnew
[ 98%] Built target pcbnew
Scanning dependencies of target qa_pcbnew_tools
Scanning dependencies of target qa_pcbnew
[100%] Building CXX object qa/pcbnew_tools/CMakeFiles/qa_pcbnew_tools.dir/pcbnew_tools.cpp.o
[100%] Building CXX object qa/pcbnew_tools/CMakeFiles/qa_pcbnew_tools.dir/tools/drc_tool/drc_tool.cpp.o
[100%] Building CXX object qa/pcbnew_tools/CMakeFiles/qa_pcbnew_tools.dir/tools/polygon_generator/polygon_generator.cpp.o
[100%] Building CXX object qa/pcbnew_tools/CMakeFiles/qa_pcbnew_tools.dir/tools/pcb_parser/pcb_parser_tool.cpp.o
[100%] Building CXX object qa/pcbnew_tools/CMakeFiles/qa_pcbnew_tools.dir/tools/polygon_triangulation/polygon_triangulation.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/__/__/common/colors.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/test_module.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/__/__/common/observable.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/test_lset.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/board_test_utils.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/test_graphics_import_mgr.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/test_array_pad_name_provider.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/__/__/common/eda_text.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/drc/drc_test_utils.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/test_pad_naming.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/drc/test_drc_courtyard_overlap.cpp.o
[100%] Building CXX object qa/pcbnew/CMakeFiles/qa_pcbnew.dir/drc/test_drc_courtyard_invalid.cpp.o
[100%] Linking CXX executable qa_pcbnew_tools
[100%] Linking CXX executable qa_pcbnew
[100%] Built target qa_pcbnew_tools
[100%] Built target qa_pcbnew

编译时间要根据各位电脑配置而定,希望大家能够为开源社区奉献自己的力量!!

扫描二维码关注公众号,回复: 11626657 查看本文章

猜你喜欢

转载自blog.csdn.net/u012939880/article/details/107656447