cmake_minimum_required(VERSION 3.5) include_directories(third/lua/include) include_directories(third/libevent/include/pkgsrc/include) link_directories(third/lua/lib) link_libraries(lua) set(CMAKE_CXX_STANDARD 17) project(protoDebuger LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC FALSE) set(CMAKE_AUTOMOC FALSE) set(CMAKE_AUTORCC FALSE) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_FLAGS_DEBUG "-O0 -Wall -g ") find_package(Qt5 COMPONENTS Core Quick Widgets REQUIRED) set(HEADERS # 待预编译的cpp头文件 qserialproto.h globalvar.h serialcontroller.h sharedata.h network_controller.h mainwindow.h tcp_server_libevent.h ) set(SOURCES # 待预编译的cpp代码 serialcontroller.cpp globalvar.cpp sharedata.cpp lua_wraper.cpp lua_bind.cpp network_controller.cpp mainwindow.cpp tcp_swarm_libevent.cpp tcp_server_libevent.cpp ) set(RESOURCES qml.qrc ) set(QMLS main.qml ) set (NO_MOC_SOURCES main.cpp globalvar.cpp ) set (UIS ${QsswraperUI} mainwindow.ui ) set(Resourcestylte "${CMAKE_CURRENT_LIST_DIR}/qss.qrc") list(APPEND RESOURCES ${Resourcestylte}) include(D:\\project\\c++qt\\qsswraper\\CMakeLists.txt) QT5_WRAP_CPP(MOC ${SOURCES} ) # moc预编译代码 QT5_WRAP_CPP(MOCHEADER ${HEADERS} ) # moc预编译代码 QT5_ADD_RESOURCES(RCC ${RESOURCES}) # rcc生成资源cpp QT5_WRAP_UI(UIC ${UIS}) # uic生成ui_x.h FOREACH(list ${UIC}) message("UIC " ${list} ) ENDFOREACH(list) FOREACH(list ${MOC}) message("MOC " ${list} ) ENDFOREACH(list) FOREACH(list ${NO_MOC_SOURCES}) message("NO_MOC_SOURCES " ${list} ) ENDFOREACH(list) add_executable(protoDebuger #最后需要参与链接生成的是 ${SOURCES} #1. 原先的cpp代码, ${MOC} #2. 预编译后的cpp ${RCC} #3. 资源cpp代码 ${UIC} ${NO_MOC_SOURCES} ) target_compile_definitions(protoDebuger PRIVATE $<$,$>:QT_QML_DEBUG>) find_package( Qt5SerialPort) find_package( Qt5QuickWidgets) target_link_directories(protoDebuger PUBLIC third/libevent/lib) target_link_libraries(protoDebuger PRIVATE Qt5::Core Qt5::Quick Qt5::Widgets Qt5::SerialPort Qt5::Network Qt5::QuickWidgets event.lib event_extra.lib event_core.lib ws2_32)