diff --git a/CMakeLists.txt b/CMakeLists.txt index 80b546c..7cdd5f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.16) -project(RibbonUI_Project VERSION 1.0 LANGUAGES CXX) +project(RibbonUI_Project VERSION 1.0.2 LANGUAGES CXX) option(RIBBONUI_BUILD_EXAMPLES "Build RibbonUI APP." ON) option(RIBBONUI_BUILD_FRAMELESSHEPLER "Build FramelessHelper." ON) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 1037e45..199bf16 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.21) -project(RibbonUIAPP VERSION 1.0.1 LANGUAGES CXX) +project(RibbonUIAPP VERSION ${CMAKE_PROJECT_VERSION} LANGUAGES CXX) set(CMAKE_AUTOMOC ON) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -10,11 +10,12 @@ if(APPLE) endif() set(PROJECT_COMPANY "Mentalflow's Lab") -set(PROJECT_COPYRIGHT "Copyright (c) 2023 Mentalflow's Lab. All rights reserved.") +set(PROJECT_COPYRIGHT "Copyright (c) 2024 Mentalflow's Lab. All rights reserved.") set(PROJECT_DOMAIN "dev.ourdocs.cn.ribbonuiapp") set(PROJECT_BUNDLE_NAME RibbonUI-APP) -add_definitions(-DRIBBONUIAPP_VERSION=1,0,1) +set(version_str "${CMAKE_PROJECT_VERSION_MAJOR},${CMAKE_PROJECT_VERSION_MINOR},${CMAKE_PROJECT_VERSION_PATCH}") +add_definitions(-DRIBBONUIAPP_VERSION=${version_str}) find_package(Qt6 COMPONENTS Quick REQUIRED) @@ -61,7 +62,8 @@ endif () qt_add_qml_module(${PROJECT_NAME} URI ${PROJECT_NAME} - VERSION 1.0 + VERSION ${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR} + RESOURCE_PREFIX "/qt/qml/" QML_FILES example.qml components/RibbonWindow.qml RESOURCES resources/imgs/heart.png resources/imgs/search.png resources/icon.rc ) diff --git a/example/example.cpp b/example/example.cpp index c341bac..4372973 100644 --- a/example/example.cpp +++ b/example/example.cpp @@ -30,7 +30,7 @@ int main(int argc, char *argv[]) #ifdef RIBBONUI_BUILD_STATIC_LIB engine.addImportPath("qrc:/"); #endif - const QUrl url(u"qrc:/RibbonUIAPP/example.qml"_qs); + const QUrl url(u"qrc:/qt/qml/RibbonUIAPP/example.qml"_qs); QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject *obj, const QUrl &objUrl) { if (!obj && url == objUrl) diff --git a/lib_source/CMakeLists.txt b/lib_source/CMakeLists.txt index e0d2868..d1be0b2 100644 --- a/lib_source/CMakeLists.txt +++ b/lib_source/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.21) -project(RibbonUI VERSION 1.0.1 LANGUAGES CXX) +project(RibbonUI VERSION ${CMAKE_PROJECT_VERSION} LANGUAGES CXX) set(CMAKE_AUTOMOC ON) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -9,9 +9,10 @@ if(APPLE) set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE) endif() -find_package(Qt6 6.2 COMPONENTS Core Quick Qml ShaderTools REQUIRED) +find_package(Qt6 COMPONENTS Core Quick Qml ShaderTools REQUIRED) -add_definitions(-DRIBBONUI_VERSION=1,0,1) +set(version_str "${CMAKE_PROJECT_VERSION_MAJOR},${CMAKE_PROJECT_VERSION_MINOR},${CMAKE_PROJECT_VERSION_PATCH}") +add_definitions(-DRIBBONUI_VERSION=${version_str}) if (RIBBONUI_BUILD_STATIC_LIB) set(LIB_TYPE "STATIC") @@ -22,22 +23,31 @@ else() set(PLUGIN_TARGET_NAME ${PROJECT_NAME}) endif() +set( + qml_files qml/RibbonTabBar.qml qml/RibbonTabButton.qml qml/RibbonView.qml + qml/RibbonTabPage.qml qml/RibbonTabGroup.qml qml/RibbonButton.qml + qml/RibbonBottomBar.qml qml/RibbonIcon.qml qml/RibbonToolTip.qml + qml/RibbonTitleBar.qml qml/RibbonSlider.qml qml/RibbonSwitchButton.qml + qml/RibbonCheckBox.qml qml/RibbonMenu.qml qml/RibbonMenuItem.qml + qml/RibbonShadow.qml qml/RibbonBlur.qml qml/RibbonMenuSeparator.qml + qml/RibbonPaperView.qml qml/RibbonPushButton.qml qml/RibbonRectangle.qml + qml/RibbonText.qml qml/RibbonTextBoxMenu.qml qml/RibbonPopup.qml + qml/RibbonPopupDialog.qml qml/RibbonLineEdit.qml qml/RibbonTextEdit.qml + qml/RibbonComboBox.qml qml/RibbonSpinBox.qml +) + +foreach(qmlfile ${qml_files}) + string(REPLACE "qml/" "" fixedfile ${qmlfile}) + set_source_files_properties(${qmlfile} PROPERTIES QT_RESOURCE_ALIAS ${fixedfile}) +endforeach(qmlfile) + qt_add_library(${PROJECT_NAME} ${LIB_TYPE}) qt_add_qml_module(${PROJECT_NAME} PLUGIN_TARGET ${PLUGIN_TARGET_NAME} OUTPUT_DIRECTORY ${CMAKE_PREFIX_PATH}/qml/RibbonUI - URI RibbonUI - VERSION 1.0 - QML_FILES qml/RibbonTabBar.qml qml/RibbonTabButton.qml qml/RibbonView.qml - qml/RibbonTabPage.qml qml/RibbonTabGroup.qml qml/RibbonButton.qml - qml/RibbonBottomBar.qml qml/RibbonIcon.qml qml/RibbonToolTip.qml - qml/RibbonTitleBar.qml qml/RibbonSlider.qml qml/RibbonSwitchButton.qml - qml/RibbonCheckBox.qml qml/RibbonMenu.qml qml/RibbonMenuItem.qml - qml/RibbonShadow.qml qml/RibbonBlur.qml qml/RibbonMenuSeparator.qml - qml/RibbonPaperView.qml qml/RibbonPushButton.qml qml/RibbonRectangle.qml - qml/RibbonText.qml qml/RibbonTextBoxMenu.qml qml/RibbonPopup.qml - qml/RibbonPopupDialog.qml qml/RibbonLineEdit.qml qml/RibbonTextEdit.qml - qml/RibbonComboBox.qml qml/RibbonSpinBox.qml + URI ${PROJECT_NAME} + VERSION ${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR} + QML_FILES ${qml_files} SOURCES ribbonui.cpp ribbonui.h definitions.h ribbontheme.h ribbontheme.cpp RESOURCES resources/FluentSystemIcons-Resizable.ttf resources/imgs/icon.png )