将uWebSockets集成到CMake项目

i1icjdpr  于 2023-03-30  发布在  其他
关注(0)|答案(1)|浏览(184)

我想在我自己的项目中使用uWebSockets,该项目使用CMake。
对我来说有两个问题:

  1. uWebSocket使用Make以及我认为它自己的构建系统/文件build.c
    1.它依赖于其他库,其中一些使用CMake,另一些使用Make。
    如果我能让它与CMake一起工作,我会很高兴,即使没有反映出项目的所有可能性,例如构建示例或链接可选依赖项,如uSockets的boost asio(其依赖项之一)。
    是否可以通过CMake的FetchContent获取库?注意,uWebSockets有它的依赖uSocket设置作为git子模块。
    在CMake中重写整个Makefile,而只是在CMake中调用make,这有意义吗?
    关于柯南:它抛出了一个错误,我也不知道如何修复(在Linux上找不到MSBuild Python包?):
ERROR: Package 'usockets/0.8.5' not resolved: usockets/0.8.5: Cannot load recipe.
Error loading conanfile at '/home/<USER>/.conan2/p/usock995f8272b80d4/e/conanfile.py': Unable to load conanfile in /home/<USER>/.conan2/p/usock995f8272b80d4/e/conanfile.py
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/<USER>/.conan2/p/usock995f8272b80d4/e/conanfile.py", line 7, in <module>
    from conans import MSBuild, AutoToolsBuildEnvironment
ImportError: cannot import name 'MSBuild' from 'conans' (/usr/lib/python3.10/site-packages/conans/__init__.py)

PS:uWebSocket项目没有入门指南,维护人员不开放任何其他构建系统,而不是Make。
PSS:我发现了关于CMake集成的this discussion。虽然我不确定它是否仍然是最新的或比它需要的时间更长。

mwg9r5ms

mwg9r5ms1#

我想描述一下我是如何通过CMake管理最小构建的。
项目文件夹结构:

$ROOT/
  CMakeLists.txt
  external/
    CMakeLists.txt
    uSockets/
      CMakeLists.txt
    uWebSockets/
      CMakeLists.txt
  main.cpp

单独的CMakeLists.txt s:
一个一个一个一个一个x一个一个二个一个x一个一个三个一个x一个一个x一个四个一个
我很乐意收到一些关于这个解决方案的反馈。

相关问题