cmake_minimum_required(VERSION 3.16)
project(lx4 LANGUAGES CXX)
include(qt.cmake) #qt版本6.3以上无用
#\\\\
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
#////
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#查找软件包
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
#查找软件包
find_package(Qt${QT_VERSION_MAJOR}
COMPONENTS
Core
Gui
Widgets
)
#\\\\
#查找库文件
#find_library(QT_LIB Widgets)
#////
#qt_standard_project_setup(),用于简化典型Qt应用程序的设置任务
qt_standard_project_setup()
#\\\\
#CMAKE_SOURCE_DIR,指向最顶层的CMakeLists.txt文件所在的目录,即整个项目的根目录
#PROJECT_SOURCE_DIR,指向包含最近一次调用project()命令的CMakeLists.txt文件的目录
#设置头文件
include_directories(${CMAKE_SOURCE_DIR}/ui) #ui头文件
include_directories(${CMAKE_SOURCE_DIR}/src) #其他头文件
#处理ui
#CMAKE_AUTOUIC_SEARCH_PATHS,用于指定AutoUic工具搜索.ui文件的路径
list(APPEND CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_SOURCE_DIR}/ui)
file(GLOB_RECURSE UI ${CMAKE_SOURCE_DIR}/ui/*.ui)
file(GLOB_RECURSE UI_CPP ${CMAKE_SOURCE_DIR}/ui/*.cpp)
file(GLOB_RECURSE UI_H ${CMAKE_SOURCE_DIR}/ui/*.h)
#处理其他cpp
file(GLOB_RECURSE CPP ${CMAKE_SOURCE_DIR}/src/*.cpp)
file(GLOB_RECURSE CPP_H ${CMAKE_SOURCE_DIR}/src/*.cpp)
# 设置静态库的输出目录
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
# 设置动态库的输出目录
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
# 存放可执行软件的目录
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
#添加qt动态库
#////
set(PROJECT_SOURCES
${UI} #添加自定义ui
${UI_CPP} #添加自定义ui源文件
${UI_H} #添加自定义ui头文件
${CPP} #添加自定义源文件
${CPP_H} #添加自定义头文件
main.cpp
lx4.ui
lx4.h
lx4.cpp
)
#qt_add_executable用于创建一个特定平台的可执行目标
qt_add_executable(${PROJECT_NAME} ${PROJECT_SOURCES})
#set_target_properties(),用于设置目标(如可执行文件、库文件等)的属性
set_target_properties(${PROJECT_NAME}
PROPERTIES
WIN32_EXECUTABLE TRUE
)
#target_link_libraries()将库目标链接到当前目录中
target_link_libraries(${PROJECT_NAME}
PUBLIC
#${QT_LIB}
Qt::Core
Qt::Gui
Qt::Widgets
)
project(lx4 LANGUAGES CXX)
include(qt.cmake) #qt版本6.3以上无用
#\\\\
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
#////
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#查找软件包
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
#查找软件包
find_package(Qt${QT_VERSION_MAJOR}
COMPONENTS
Core
Gui
Widgets
)
#\\\\
#查找库文件
#find_library(QT_LIB Widgets)
#////
#qt_standard_project_setup(),用于简化典型Qt应用程序的设置任务
qt_standard_project_setup()
#\\\\
#CMAKE_SOURCE_DIR,指向最顶层的CMakeLists.txt文件所在的目录,即整个项目的根目录
#PROJECT_SOURCE_DIR,指向包含最近一次调用project()命令的CMakeLists.txt文件的目录
#设置头文件
include_directories(${CMAKE_SOURCE_DIR}/ui) #ui头文件
include_directories(${CMAKE_SOURCE_DIR}/src) #其他头文件
#处理ui
#CMAKE_AUTOUIC_SEARCH_PATHS,用于指定AutoUic工具搜索.ui文件的路径
list(APPEND CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_SOURCE_DIR}/ui)
file(GLOB_RECURSE UI ${CMAKE_SOURCE_DIR}/ui/*.ui)
file(GLOB_RECURSE UI_CPP ${CMAKE_SOURCE_DIR}/ui/*.cpp)
file(GLOB_RECURSE UI_H ${CMAKE_SOURCE_DIR}/ui/*.h)
#处理其他cpp
file(GLOB_RECURSE CPP ${CMAKE_SOURCE_DIR}/src/*.cpp)
file(GLOB_RECURSE CPP_H ${CMAKE_SOURCE_DIR}/src/*.cpp)
# 设置静态库的输出目录
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
# 设置动态库的输出目录
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
# 存放可执行软件的目录
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
#添加qt动态库
#////
set(PROJECT_SOURCES
${UI} #添加自定义ui
${UI_CPP} #添加自定义ui源文件
${UI_H} #添加自定义ui头文件
${CPP} #添加自定义源文件
${CPP_H} #添加自定义头文件
main.cpp
lx4.ui
lx4.h
lx4.cpp
)
#qt_add_executable用于创建一个特定平台的可执行目标
qt_add_executable(${PROJECT_NAME} ${PROJECT_SOURCES})
#set_target_properties(),用于设置目标(如可执行文件、库文件等)的属性
set_target_properties(${PROJECT_NAME}
PROPERTIES
WIN32_EXECUTABLE TRUE
)
#target_link_libraries()将库目标链接到当前目录中
target_link_libraries(${PROJECT_NAME}
PUBLIC
#${QT_LIB}
Qt::Core
Qt::Gui
Qt::Widgets
)