c++ - 如何简化此 cmake 文件?

标签 c++ qt cmake qt5

我有这个 CMakeLists.txt。
从模式来看,似乎有更好、更清洁的方法来做到这一点。

QT5_WRAP_CPP(windowui_moc ../../include/QtDisplay/WindowUI.hpp)
QT5_WRAP_CPP(mainwindow_moc ../../include/QtDisplay/MainWindow.hpp)
QT5_WRAP_CPP(editor_moc ../../include/QtDisplay/SpiderEditor.hpp)
QT5_WRAP_CPP(output_moc ../../include/QtDisplay/OutputPane.hpp)

add_library(Display WindowUI.cpp MainWindow.cpp SpiderEditor.cpp OutputPane.cpp
                    ${windowui_moc} ${mainwindow_moc} ${editor_moc} ${output_moc})

qt5_use_modules(Display Widgets Core)

我不太了解cmake中使用的约定,所以我无法查找“解决方案”的名称。

最佳答案

你在找这样的东西吗:

set (Display_src
    ${PROJECT_SOURCE_DIR}/WindowUI.cpp
    ${PROJECT_SOURCE_DIR}/MainWindow.cpp
    ${PROJECT_SOURCE_DIR}/SpiderEditor.cpp
    ${PROJECT_SOURCE_DIR}/OutputPane.cpp
)

set (Display_hdr
    ${PROJECT_SOURCE_DIR}/../../include/QtDisplay/WindowUI.hpp
    ${PROJECT_SOURCE_DIR}/../../include/QtDisplay/MainWindow.hpp
    ${PROJECT_SOURCE_DIR}/../../include/QtDisplay/SpiderEditor.hpp
    ${PROJECT_SOURCE_DIR}/../../include/QtDisplay/OutputPane.hpp
)

qt5_wrap_cpp (Display_hdr_moc ${Display_hdr})

add_library (Display 
    ${Display_src}
    ${Display_hdr_moc}
)

# For Qt 5.2+
target_link_libraries (Display Qt5::Widgets)    
# For Qt 5.1.
# qt5_use_modules(Display Widgets Core)

关于c++ - 如何简化此 cmake 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29077451/

相关文章:

c++ - 无法使用初始化列表初始化 QQueue

c++ - CMake:编译 OpenCV 时找不到 CUDA 库

c++ - x64 上 Boost 1.60 和 VS 2013 的链接器错误

c++ - 从另一个线程调用函数

CMake编译错误..(未知CMake命令 "QT4_WRAP_UI")

c++ - 解析为类(不是结构)

c++ - C++ 中的 while 循环中始终存在变量

c++ - 使用 int 数组作为键的二叉树(欧氏距离)?

C++ 迭代器随机失效

c++ - 如何从图像文件创建圆形图标?