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)
只需要修改第一行的项目名称,即可