谷动谷力

 找回密码
 立即注册
查看: 511|回复: 0
打印 上一主题 下一主题
收起左侧

【开源项目】KiCad 7.99 在 Debian 12 上的编译/构建

[复制链接]
跳转到指定楼层
楼主
发表于 2023-12-21 23:07:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
【开源项目】KiCad 7.99 在 Debian 12 上的编译/构建



一般用户可以通过下载 nightly 来使用 7.99 版本。不过由于时差,有时候我晚上提交的 issue,过几个小时开发者就能提交修复,这时候我就可以通过更新代码并重新编译代码来运行最新的版本,不需要等待和下载 nightly build。另外有一些小的 bug 我也可以自己想办法修改并提交 M(erge) R(equest)。

图片

官方提供了一些简单的文档描述:https://dev-docs.kicad.org/en/build/

这里提供一些补充的信息。

安装依赖

Debian 12 的官方 apt 源提供了所有编译 Kicad 7.0会用到的库,也是 KiCad 开发者提供支持的编译环境。之前使用 Debian 11 编译 KiCad 7 遇到很多问题 ,需要自己编译更新一些依赖,折腾了很久,作为经验 后面有一个部分会简要提及。
  1. sudo apt install git gcc binutils gdb cmake ninja-build libopengl-dev libglx-dev  libgl-dev libglew-dev libglm-dev zlib1g-dev curl libcurl4-gnutls-dev libcairo2-dev libgit2-dev libboost1.74-all-dev libharfbuzz-dev ngspice-dev libngspice0-dev libocct-*-dev swig4.0 wxpython-wxgtk4.0 libwxgtk3.2-dev unixodbc-dev libgtk-3-dev libsecret-1-dev
复制代码


ninja 和下面说的 mold 是推荐的可以提高编译和链接速度的选项。

Mold的自行编译
  1. git clone https://github.com/rui314/mold.git
  2. cd mold
  3. git v2.4.0 -b 2.4.0
  4. mkdir build
  5. cd build
  6. cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=c++ ..
  7. cmake --build . -j `nproc`
  8. sudo cmake --install .
复制代码


mold 被默认安装到 /usr/local/bin/mold, 为了使用 mold ,需要确定这 /usr/local/bin    被加入到环境变量的 PATH 中。

准备 KiCad 源代码
  1. mkdir -p ~/Developer/Engineering/KiCad
  2. cd ~/Developer/Engineering/KiCad
  3. git clone https://gitlab.com/kicad/code/kicad.git kicad-master
复制代码

# 这些库特别是3D模型库比较大,并且不影响源代码编译,可以新开一个终端进行这些库的下载,
  1. git clone https://gitlab.com/kicad/libraries/kicad-packages3D.git
  2. git clone https://gitlab.com/kicad/libraries/kicad-symbols.git
  3. git clone https://gitlab.com/kicad/libraries/kicad-footprints.git

  4. cd kicad-master
复制代码

编译

# 在 kicad-master/build/rel 目录下
  1. cmake -G Ninja -DKICAD_VERSION_EXTRA=qdiotpi -DCMAKE_INSTALL_PREFIX=$(dirname $PWD)/release_install -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS=-fuse-ld=mold ../..
复制代码

也可以使用下面的标志位可以指定特定的 mold 执行文件

  1. -DCMAKE_CXX_FLAGS=-B/usr/local/bin/mold
复制代码

对于使用 wayland 的环境,可以增加下面的标志

  1. -DKICAD_USE_EGL=ON
复制代码

可以在标准的版本号上附加一个版本标识,以区别官方编译的版本
  1. -DKICAD_VERSION_EXTRA=qdiotpi
复制代码


如果不准备将编译结果安装到某个目录,可以不添加下面的参数
  1. -DCMAKE_INSTALL_PREFIX=$(dirname $PWD)/release_install
复制代码

运行

常用的方式是直接在编译目录运行,而不需要执行 install 命令:

# 依然在 kicad-master/build/rel
  1. KICAD_RUN_FROM_BUILD_DIR=1 ./kicad/kicad
复制代码

# 或者
  1. KICAD_RUN_FROM_BUILD_DIR=1 ./eeschema/eeschema
复制代码

# 或者
  1. KICAD_RUN_FROM_BUILD_DIR=1 ./pcbnew/pcbnew
复制代码

由于我还没有调研的某个原因,不能在 KiCad 界面调用计算器等工具,这时候也需要命令行进行调用

# 依然在 kicad-master/build/rel
  1. KICAD_RUN_FROM_BUILD_DIR=1 ./pcb_calculator/pcb_calculator
复制代码

由于有时候新版的 KiCad 的崩溃情况会比较多,所以我会使用 gdb 启动 KiCad,这样崩溃的时候可以在 gdb 中查看崩溃的 back trace。

# 依然在 kicad-master/build/rel
  1. KICAD_RUN_FROM_BUILD_DIR=1 gdb ./kicad/kicad
复制代码

# 进入 gdb 后,要使用 run 命令执行 kicad
# 如果要设定断点,需要等 kicad 进程启动完成,再在 gdb 中(使用 ctrl-c 中断之后) 设置断点
Debug 编译

之前构建的版本是 RelWithDebInfo,如果你是因为要开发 KiCad 的功能,最好还是使用 Debug 目标,这样会取消掉编译器优化,方便源代码级调试:

-DCMAKE_BUILD_TYPE=Debug
调试信息输出 ( 只有在 Debug 模式下运行才有此 log 输出 )

如果在代码里看到 wxLogTrace,如下图

图片

可以在运行的时候开启这个部分 (PNS) 的 trace log 输出
  1. KICAD_RUN_FROM_BUILD_DIR=1  WXTRACE=PNS ./pcbnew/pcbnew
复制代码


具体文档信息在这里描述:

https://dev-docs.kicad.org/en/components/testing/

KiCad 运行配置

自己编译的版本并未带有基础的符号、封装及其他设计库,需要自己设定

图片

在这里将基础的库路径一一设置到前面下载的库路径

图片

启动原理图或者符号编辑器,会提示复制全局的符号库

图片

图片

启动PCB或者封装编辑器,会提示复制全局的封装库

图片

使用非系统 wxPython 库的编译

由于 Debian 11 官方的 apt 源的库(主要是 wxPython )版本太低,不支持直接编译 KiCad 7.0。在未升级到 Debian 12 前,找到了一个方案来使用新版本 wxPython。不过这个方案应该也可以在其他某些情况下不使用系统库版本的时候使用。因为现在手头没有 Debian 11 的环境了,所以这里只记录一下概念和过程,有这种需要的朋友还要自己尝试。因为可以指定特定版本的 wxPython,所以对于一些特殊需要,比如使用特定版本的 wx之类的需求有借鉴意义。

wxPython 要求它调用的 wx 库必须是编译 wxPython 一致的库版本才可以。我使用了 https://docs.codelite.org/wxWidgets/repo320/ 来安装 KiCad 7.0 支持的 wx 运行时版本

然后下载了 wxPython 的源代码包。

我新建了一个 python venv ,激活启用这个 venv,并将 wxPython 编译安装进这个 venv。
  1. python build.py  --use_syswx build_py
  2. python build.py  --use_syswx install_py
复制代码


编译 KiCad
  1. cmake -G Ninja -DKICAD_VERSION_EXTRA=qdiotpi -DCMAKE_INSTALL_PREFIX=$(dirname $PWD)/debug_install -DPYTHON_SITE_PACKAGE_PATH=$(PATH_TO_VENV)/lib/python3/site-packages -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=-B/usr/local/libexec/mold ../../
复制代码


最重要的是设置如下的标志位到你自己的 venv 路径

  1. -DPYTHON_SITE_PACKAGE_PATH=$(PATH_TO_VENV)/lib/python3/site-packages
复制代码

+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-4-29 16:43 , Processed in 0.205870 second(s), 40 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表