refactor: new start

This commit is contained in:
ivaquero
2026-04-18 01:46:43 +08:00
parent 35e8a21f00
commit b3ecb2708a
12 changed files with 587 additions and 216 deletions
+27 -49
View File
@@ -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
)