cmake_minimum_required(VERSION 3.5)
#自动设置项目名称
project(${PROJECT_NAME} VERSION 0.1 LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
#打开相应的UIC MOC RCC
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
#设置c++标准
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#设置CMake前缀路径
set(CMAKE_PREFIX_PATH "D:/Packages/Qt/6.5.0/mingw111_64/lib/cmake")
# QtCreator supports the following variables for Android, which are identical to qmake Android variables.
# Check https://doc.qt.io/qt/deployment-android.html for more information.
# They need to be set before the find_package( ...) calls below.
#[[#if]]#(ANDROID)
# set(ANDROID_PACKAGE_SOURCE_DIR "#[[${CMAKE_CURRENT_SOURCE_DIR}]]#/android")
# if (ANDROID_ABI STREQUAL "armeabi-v7a")
# set(ANDROID_EXTRA_LIBS
# #[[${CMAKE_CURRENT_SOURCE_DIR}]]#/path/to/libcrypto.so
# #[[${CMAKE_CURRENT_SOURCE_DIR}]]#/path/to/libssl.so)
# endif()
#[[#endif]]#()
find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED)
find_package(Qt#[[${QT_VERSION_MAJOR}]]# COMPONENTS Widgets REQUIRED)
set(PROJECT_SOURCES
main.cpp
)
if(#[[${QT_VERSION_MAJOR}]]# GREATER_EQUAL 6)
qt_add_executable(#[[${PROJECT_NAME}]]#
MANUAL_FINALIZATION
#[[${PROJECT_SOURCES}]]#
)
else()
if(ANDROID)
add_library(#[[${PROJECT_NAME}]]# SHARED
#[[${PROJECT_SOURCES}]]#
)
else()
add_executable(#[[${PROJECT_NAME}]]#
#[[${PROJECT_SOURCES}]]#
)
endif()
endif()
target_link_libraries(#[[${PROJECT_NAME}]]# PRIVATE Qt#[[${QT_VERSION_MAJOR}]]#::Widgets)
set_target_properties(#[[${PROJECT_NAME}]]# PROPERTIES
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
MACOSX_BUNDLE_BUNDLE_VERSION #[[${PROJECT_VERSION}]]#
MACOSX_BUNDLE_SHORT_VERSION_STRING #[[${PROJECT_VERSION_MAJOR}]]#.#[[${PROJECT_VERSION_MINOR}]]#
)
if(QT_VERSION_MAJOR EQUAL 6)
qt_finalize_executable(#[[${PROJECT_NAME}]]#)
endif()
# 区别debug和release来决定是否去除命令行
if(#[[${CMAKE_CXX_COMPILER}]]# MATCHES ".*/(g\\+\\+)(\\..*)")
set_target_properties(#[[${PROJECT_NAME}]]# PROPERTIES LINK_FLAGS_RELEASE "-mwindows")
elseif(#[[${CMAKE_CXX_COMPILER}]]# MATCHES ".*/(cl)(\\..*)")
set_target_properties(#[[${PROJECT_NAME}]]# PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
endif()