refactor: new start
This commit is contained in:
+27
-49
@@ -1,60 +1,38 @@
|
||||
cmake_minimum_required(VERSION 3.7...3.21)
|
||||
|
||||
if(${CMAKE_VERSION} VERSION_LESS 3.12)
|
||||
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
|
||||
endif()
|
||||
|
||||
project(FloatingClock)
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(flock)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_CXX_STANDARD 17 CACHE STRING "v")
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
# Find Qt6
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
|
||||
|
||||
# Homebrew Qt6 路径 (自动检测或手动设置)
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
# 检测架构
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
set(QT6_PATH "/opt/homebrew/opt/qt" CACHE PATH "Qt6 installation path")
|
||||
else()
|
||||
set(QT6_PATH "/usr/local/opt/qt" CACHE PATH "Qt6 installation path")
|
||||
endif()
|
||||
# Set up Qt6
|
||||
qt6_standard_project_setup()
|
||||
|
||||
# 添加到 CMake 搜索路径
|
||||
list(APPEND CMAKE_PREFIX_PATH "${QT6_PATH}/lib/cmake")
|
||||
endif()
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Xml)
|
||||
|
||||
add_executable(${CMAKE_PROJECT_NAME} WIN32 MACOSX_BUNDLE main.cpp)
|
||||
|
||||
set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES
|
||||
WIN32_EXECUTABLE TRUE
|
||||
MACOSX_BUNDLE TRUE
|
||||
# Sources
|
||||
set(SOURCES
|
||||
main.cpp
|
||||
clockwidget.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core
|
||||
Qt6::Gui
|
||||
set(HEADERS
|
||||
clockwidget.h
|
||||
)
|
||||
|
||||
# Create executable
|
||||
qt6_add_executable(flock
|
||||
${SOURCES}
|
||||
${HEADERS}
|
||||
)
|
||||
|
||||
# Link Qt libraries
|
||||
target_link_libraries(flock
|
||||
Qt6::Core
|
||||
Qt6::Widgets
|
||||
Qt6::Xml
|
||||
)
|
||||
|
||||
# macOS 特定设置
|
||||
if(APPLE)
|
||||
set_target_properties(FloatingClock PROPERTIES
|
||||
MACOSX_BUNDLE TRUE
|
||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/Info.plist.in
|
||||
)
|
||||
|
||||
# 修复运行时库路径
|
||||
set_target_properties(FloatingClock PROPERTIES
|
||||
INSTALL_RPATH "${QT6_PATH}/lib"
|
||||
BUILD_WITH_INSTALL_RPATH TRUE
|
||||
)
|
||||
endif()
|
||||
# Set up install
|
||||
install(TARGETS flock
|
||||
RUNTIME DESTINATION bin
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user