比较通用的cmake处理qt的CMakeLists.txt

CMake工具可以及其方便的将你的代码组织在一起,本CMakeLists.txt旨在写一份通用的,方便我后续使用,备份下来,欢迎指正


#通用的模板,只需要修改ProjectName即可
project(ProjectName)
cmake_minimum_required(VERSION 3.0.0)

# 让CMake自动查找Qt5包并链接到TARGET_LINK_LIBRARIES
find_package(Qt5 COMPONENTS Core Gui Widgets Sql REQUIRED)
set(QT_USE_QTMAIN TRUE)

#这些生成的中间文件都会在build目录下,这样的话,编译器则不能定位由uic程序产生的诸如_ui_mainwindow.h等文件。所以,我们需要把build目录添加到包含目录中
set(CMAKE_INCLUDE_CURRENT_DIR ON)
#采用C++11标准
set(CMAKE_CXX_STANDARD 11)

#添加所有的头文件,源文件,.ui文件,资源文件
file(GLOB HEADERS *.h *.hpp)
file(GLOB SOURCES *.cpp *.cxx *.cc)
file(GLOB FORMS *.ui)
file(GLOB RESOURCES *.qrc)

# 设置生成的项目筛选器
source_group("Header Files" FILES ${HEADERS})
source_group("Source Files" FILES ${SOURCES})
source_group("Resource Files" FILES ${RESOURCES})
source_group("Form Files" FILES ${FORMS})
source_group("Translation Files" FILES ${TRANSLATIONS})

# 生成可执行文件
add_executable(${PROJECT_NAME}
    ${SOURCES}
    ${FORMS}
    ${RESOURCES}
    ${HEADERS}
)

#自动处理ui,moc处理头文件,rcc处理.qrc文件
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

#ADD_LIBRARY(${PROJECT_NAME} SHARED ${SOURCES})
#为target添加需要链接的共享库
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Sql)

只需要修改第一行的项目名称,即可

你可能感兴趣的:(qt,开发语言)