[ Content contribution] 来自魔法师的 CMake wxWidgets 的开发环境
Tofloor
poster avatar
魔法师
deepin
2023-12-14 19:36
Author

引用另一个贴: deepin-IDE+CMake+wxWidgets开发环境搭建
本仓库: https://gitee.com/zinface/qt.wx-widgets-demo

  • 首先,根据 Spark 构建定义,你可以摒弃传统构建模式,亦可以为其增加扩展。以下是针对 wxWidgets 开发的基本操作。

    image.png

  • 在该仓库的描述中,它是这样做的

    1. 构建出你的 wxWidgets 库本体,那么你将得到一个完全版本的依赖库

    2. 将该库放到你的工程中作为 3rlib 或 thrid_party 中以平台目录 linux 进行区分

    3. 根据 wx-config 是一个可执行程序的定义,那么它的作用是为你生成 cflags 与一些相关配置例如 config.h 用于参与构建。

    4. 那么定义一个 cmake 构建模块,前边可以提供全局 3rlib 库引用路径,后面则是针对 wx-config 可能在不同位置提供的的 cmake -D的可选传递变量,默认为你系统中的 wx-config 如果有的话就可以不需要其它配置项,然后通过调用它进行获取输出结果,这里使用了一些cmake 的内部指令 separate_argumentsUNIX_COMMAND 等控制参数,将输出的结果重新转为新的结构存放在 CFLAGS 与 LIBS 变量中,随后加入到全局编译宏。

      image.png-


  • 以上内容就是 wxWidgets 在 Spark 化构建中的概念,你的任意项目都可以基于一个模块来提升你的构建,剩下的就是你的简单编译过程。
    1. 引用 wxWidgets.cmake 模块,构建你的目标,安装你的目录,其它的是 Spark 提供的构建能力例如直接打包为 deb
    2. 在这里提一点,虽然编译过程中使用了 3rlib 中的库,但这里的安装并没有安装 3rlib 中的库,需要你系统中已安装相应版本的 wxWidgets 才可以运行。
    3. 其次,通过 Spark 构建中的包装为 AppImage 方式,你只需要定义 LD_LIBRARY_PATH 为 3rlib 中 so 存在的路径,那么 linuxdeployqt 则会为你自动准备好 AppImage 打包结构,这部分并不赘述。
    4. 本项目可以作为你的基础脚手架,可尝试使用。
      image.png
Reply Favorite View the author
All Replies
魔法师
deepin
2023-12-14 19:37
#1

@北冥夜未央

  • 找遍全网,竟然没有一篇关于Linux下搭建代码编辑器+CMake+wxWidgets开发环境的,只能自己摸索。
Reply View the author
晚秋(lateautumn)
Moderator
2023-12-14 20:20
#2

学习了,谢谢分享。like

Reply View the author
北冥夜未央
deepin
Ecological co-builder
2023-12-14 20:22
#3
魔法师

@北冥夜未央

  • 找遍全网,竟然没有一篇关于Linux下搭建代码编辑器+CMake+wxWidgets开发环境的,只能自己摸索。

本人菜鸟一枚,表示看不懂,集成太多文件了,把基础命令都隐藏了😂

Reply View the author
魔法师
deepin
2023-12-14 20:55
#4
北冥夜未央

本人菜鸟一枚,表示看不懂,集成太多文件了,把基础命令都隐藏了😂

看来我这个还是太超前了

Reply View the author
北冥夜未央
deepin
Ecological co-builder
2023-12-14 21:07
#5
魔法师

看来我这个还是太超前了

记得之前看视频有一句话:模块再好也是别人的,不学基础就用别人的模块,一旦离开模块,什么都干不了。

我最开始学的是VS+MFC,断断续续学了很久,除了直接双击界面自动跳转到函数里写点代码,对架构运转完全不了解。

再说一个项目真的复杂到这种程度,倒不如用IDE来的爽快。

Reply View the author
fuuko
deepin
2023-12-14 21:19
#6
魔法师

@北冥夜未央

  • 找遍全网,竟然没有一篇关于Linux下搭建代码编辑器+CMake+wxWidgets开发环境的,只能自己摸索。

因为wxwidgets本身就很少了吧,大部分都用qt了

Reply View the author
yanjuner
Super Moderator
2023-12-14 21:31
#7

你为什么不发到内容投稿

Reply View the author
北冥夜未央
deepin
Ecological co-builder
2023-12-15 00:09
#8
fuuko

因为wxwidgets本身就很少了吧,大部分都用qt了

目前只发现论客邮箱是用wxWidgets开发的,其他的真没见过😂 可能有些用了也不会标明吧。

Reply View the author
魔法师
deepin
2023-12-15 00:38
#9
yanjuner

你为什么不发到内容投稿

水坛少,目前还不知道什么是内容投稿呢~
scream

Reply View the author
yanjuner
Super Moderator
2023-12-15 00:43
#10
魔法师

水坛少,目前还不知道什么是内容投稿呢~
scream

就是在发帖选择版块的时候,选择技术交流-内容投稿呢

企业微信截图_17025434115025.png

内容投稿有奖励呢~

Reply View the author
魔法师
deepin
2023-12-15 00:50
#11
yanjuner

就是在发帖选择版块的时候,选择技术交流-内容投稿呢

企业微信截图_17025434115025.png

内容投稿有奖励呢~

agree

Reply View the author
fuuko
deepin
2023-12-15 02:43
#12
北冥夜未央

目前只发现论客邮箱是用wxWidgets开发的,其他的真没见过😂 可能有些用了也不会标明吧。

我最开始实习的时候接到过wxwidgets相关的offer,是用这货搞什么工业设计软件,最后我没去,因为另外一个offer是就业面更广的Qtjoy

Reply View the author
北冥夜未央
deepin
Ecological co-builder
2023-12-15 04:06
#13
yanjuner

就是在发帖选择版块的时候,选择技术交流-内容投稿呢

企业微信截图_17025434115025.png

内容投稿有奖励呢~

属实第一次知道,开眼界了tail

Reply View the author