模仿Qt,尝试将我们的软件模块拆分



  • 现在我们的模块是独立一体的,在有一些情况下,并不方便。比如说自己构建的Qt桌面版本,由于我自己形成了一套,结合Qt的一套会非常复杂,有时候还会产生多余设置的问题。经过我这一年的探索,我还是觉得,向Qt方面看齐,因为Qt这方面这么多年了,它的集成测试,它的源码规范,都比较好,它的模块划分也看起来不错,我们需要的,可能就是更加精准,更加适合我们发布的模块组织。因此,我们将在最近的一段时间内,将我们的模块再更新一下,直到满足我们需要为止。
    🌝



  • 现在预研的焦点在于,找一个Qt官方的靶项目,观察它的结构,来验证我们项目整体移植的可能性。
    目前可能的想法是,Qt 是一个超项目,项目的初始化还是按照perl init-repository来的,然后呢,和qtbase一样,我们建立一个类似的文件夹,叫做qtdream,里面是我们所需的插件。和qtbase类似。但是生成的文件,要带qtdream前缀。👏🏼



  • 比如说,我们有一个插件,是聊天的,也就是我们最近开发的聊天应用。



  • @jiangcaiyang 我们姑且叫做chat2项目吧。以前是通过TARGET的指定,让它生成的名称是Chat2Plugin。在Windows和Linux以及Mac的全称是Chat2Plugin.dll、libChat2Plugin.so.2.0.0、libChat2Plugin.dylib.1.0.0。
    以后并入Qt库的话,我们的插件名称将以qtdream为前缀,并且去掉Plugin(因为本身就是一个插件,无需强调)。命名为:
    QtDreamChat2.dll、libQtDreamChat2.so.2.0.0、libQtDreamChat2Plugin.dylib.2.0.0。


Log in to reply
 

走马观花

最近的回复

  • 离线安装包的下载地址是:coding源github源

    read more
  • 看到过很多代码都有用这个

    read more
  • 做得还不错的嘛。希望继续呢。

    read more
  • 首先我看到的就是option选项。这个选项在cmake中的文档是这样的:

    Now let us consider making the MathFunctions library optional. In this tutorial there really isn’t any reason to do so, but with larger libraries or libraries that rely on third party code you might want to. The first step is to add an option to the top level CMakeLists file.

    # should we use our own math functions? option (USE_MYMATH "Use tutorial provided math implementation" ON)

    This will show up in the CMake GUI with a default value of ON that the user can change as desired. This setting will be stored in the cache so that the user does not need to keep setting it each time they run CMake on this project. The next change is to make the build and linking of the MathFunctions library conditional. To do this we change the end of the top level CMakeLists file to look like the following:

    # add the MathFunctions library? # if (USE_MYMATH) include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions") add_subdirectory (MathFunctions) set (EXTRA_LIBS ${EXTRA_LIBS} MathFunctions) endif (USE_MYMATH) # add the executable add_executable (Tutorial tutorial.cxx) target_link_libraries (Tutorial ${EXTRA_LIBS}) 参考来源:这里

    在我看来,cmake中的option命令更像是一个宏,规定了是否定义这个宏以及这个宏所带来的连锁反应。option规定的这个宏,通过ON的设定来表示是否定义。

    read more

关注我们

微博
QQ群