diff --git a/.gitignore b/.gitignore index c91f58f..a16b970 100644 --- a/.gitignore +++ b/.gitignore @@ -1,135 +1,12 @@ -/src/QtScrcpy.pro.user -/output/mac/* -/output/linux/* -/*.user +/output +*.user /QtScrcpy/*.user -/server/.gradle/4.6/fileChanges/last-build.bin -/server/.gradle/4.6/fileContent/fileContent.lock -/server/.gradle/4.6/fileHashes/fileHashes.bin -/server/.gradle/4.6/fileHashes/fileHashes.lock -/server/.gradle/4.6/fileHashes/resourceHashesCache.bin -/server/.gradle/4.6/javaCompile/classAnalysis.bin -/server/.gradle/4.6/javaCompile/javaCompile.lock -/server/.gradle/4.6/javaCompile/taskHistory.bin -/server/.gradle/4.6/javaCompile/taskJars.bin -/server/.gradle/4.6/taskHistory/taskHistory.bin -/server/.gradle/4.6/taskHistory/taskHistory.lock -/server/.gradle/buildOutputCleanup/buildOutputCleanup.lock -/server/.gradle/buildOutputCleanup/cache.properties -/server/.gradle/buildOutputCleanup/outputFiles.bin -/server/.gradle/vcsWorkingDirs/gc.properties -/server/.idea/caches/build_file_checksums.ser -/server/.idea/codeStyles/Project.xml -/server/.idea/gradle.xml -/server/.idea/libraries/Gradle__junit_junit_4_12_jar.xml -/server/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml -/server/.idea/misc.xml -/server/.idea/modules.xml -/server/.idea/runConfigurations.xml -/server/.idea/server.iml -/server/.idea/workspace.xml -/server/build/generated/source/aidl/debug/android/view/IRotationWatcher.java -/server/build/generated/source/buildConfig/debug/com/genymobile/scrcpy/BuildConfig.java -/server/build/generated/source/r/debug/com/genymobile/scrcpy/R.java -/server/build/intermediates/classes/debug/android/view/IRotationWatcher$Stub$Proxy.class -/server/build/intermediates/classes/debug/android/view/IRotationWatcher$Stub.class -/server/build/intermediates/classes/debug/android/view/IRotationWatcher.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/BuildConfig.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/ControlEvent.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/ControlEventReader.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/DesktopConnection.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Device$1.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Device$RotationListener.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Device.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/DisplayInfo.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/EventController.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/IO.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/KeyComposition.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Ln$Level.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Ln.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Options.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Position.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/R.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/ScreenEncoder.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/ScreenInfo.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Server$1.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Server$2.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Server.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/Size.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/wrappers/DisplayManager.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/wrappers/InputManager.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/wrappers/PowerManager.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/wrappers/ServiceManager.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/wrappers/SurfaceControl.class -/server/build/intermediates/classes/debug/com/genymobile/scrcpy/wrappers/WindowManager.class -/server/build/intermediates/incremental/compileDebugAidl/dependency.store -/server/build/intermediates/incremental/debug-mergeJavaRes/merge-state -/server/build/intermediates/incremental/debug-mergeJniLibs/merge-state -/server/build/intermediates/incremental/mergeDebugAssets/merger.xml -/server/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml -/server/build/intermediates/incremental/mergeDebugResources/compile-file-map.properties -/server/build/intermediates/incremental/mergeDebugResources/merger.xml -/server/build/intermediates/incremental/mergeDebugShaders/merger.xml -/server/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt -/server/build/intermediates/incremental/packageDebug/tmp/debug/file-input-save-data.txt -/server/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/FP87NbZceHS9rljl7uP+5xOlulI= -/server/build/intermediates/javaPrecompile/debug/annotationProcessors.json -/server/build/intermediates/manifests/density/debug/output.json -/server/build/intermediates/manifests/full/debug/AndroidManifest.xml -/server/build/intermediates/manifests/full/debug/output.json -/server/build/intermediates/manifests/instant-run/debug/output.json -/server/build/intermediates/res/debug/output.json -/server/build/intermediates/res/debug/resources-debug.ap_ -/server/build/intermediates/splits-support/debug/apk-list/apk-list.gson -/server/build/intermediates/splits-support/debug/split-list/split-list.gson -/server/build/intermediates/transforms/dexBuilder/debug/0/android/view/IRotationWatcher$Stub$Proxy.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/android/view/IRotationWatcher$Stub.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/android/view/IRotationWatcher.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/BuildConfig.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/ControlEvent.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/ControlEventReader.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/DesktopConnection.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Device$1.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Device$RotationListener.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Device.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/DisplayInfo.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/EventController.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/IO.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/KeyComposition.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Ln$Level.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Ln.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Options.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Position.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/R.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/ScreenEncoder.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/ScreenInfo.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Server$1.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Server$2.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Server.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/Size.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/wrappers/DisplayManager.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/wrappers/InputManager.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/wrappers/PowerManager.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/wrappers/ServiceManager.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/wrappers/SurfaceControl.dex -/server/build/intermediates/transforms/dexBuilder/debug/0/com/genymobile/scrcpy/wrappers/WindowManager.dex -/server/build/intermediates/transforms/dexBuilder/debug/__content__.json -/server/build/intermediates/transforms/dexMerger/debug/0/classes.dex -/server/build/intermediates/transforms/dexMerger/debug/__content__.json -/server/build/intermediates/transforms/externalLibsDexMerger/debug/__content__.json -/server/build/intermediates/transforms/mergeJavaRes/debug/0.jar -/server/build/intermediates/transforms/mergeJavaRes/debug/__content__.json -/server/build/intermediates/transforms/mergeJniLibs/debug/__content__.json -/server/build/outputs/apk/debug/output.json -/server/build/outputs/apk/debug/server-debug.apk -/server/build/outputs/logs/manifest-merger-debug-report.txt +/server/.gradle +/server/.idea +/server/build /server/gradle/wrapper/gradle-wrapper.jar /server/gradle/wrapper/gradle-wrapper.properties /server/gradlew /server/gradlew.bat /server/local.properties -/output/win/debug/QtScrcpy.ilk -/output/win/debug/QtScrcpy.pdb -/output/win/debug/QtScrcpy.exe -/output/win/release/QtScrcpy.exe build diff --git a/QtScrcpy/QtScrcpy.pro b/QtScrcpy/QtScrcpy.pro index 346e6d0..12afc9a 100644 --- a/QtScrcpy/QtScrcpy.pro +++ b/QtScrcpy/QtScrcpy.pro @@ -56,11 +56,24 @@ INCLUDEPATH += \ $$PWD/devicemanage \ $$PWD/fontawesome +# 统一版本号入口,只修改这一个地方即可 +VERSION_MAJOR = 1 +VERSION_MINOR = 0 +VERSION_PATCH = 4 + +# qmake变量的方式定义版本号 +VERSION = $${VERSION_MAJOR}.$${VERSION_MINOR}.$${VERSION_PATCH} # *********************************************************** # Win平台下配置 # *********************************************************** win32 { + # 通过rc的方式的话,VERSION变量rc中获取不到,定义为宏方便rc中使用 + DEFINES += VERSION_MAJOR=$${VERSION_MAJOR} + DEFINES += VERSION_MINOR=$${VERSION_MINOR} + DEFINES += VERSION_PATCH=$${VERSION_PATCH} + DEFINES += VERSION_RC_STR=\\\"$${VERSION_MAJOR}.$${VERSION_MINOR}.$${VERSION_PATCH}\\\" + contains(QT_ARCH, x86_64) { message("x64") # 输出目录 @@ -142,6 +155,16 @@ macos { # mac application icon ICON = $$PWD/res/QtScrcpy.icns QMAKE_INFO_PLIST = $$PWD/res/Info_mac.plist + + # 定义目标命令(修改版本号字段) + plistupdate.commands = /usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString $$VERSION\" \ + -c \"Set :CFBundleVersion $$VERSION\" \ + $$QMAKE_INFO_PLIST + + # 增加额外目标 + QMAKE_EXTRA_TARGETS += plistupdate + # 设置为前置依赖 + PRE_TARGETDEPS += plistupdate } # *********************************************************** diff --git a/QtScrcpy/main.cpp b/QtScrcpy/main.cpp index d2be9b2..7c8420e 100644 --- a/QtScrcpy/main.cpp +++ b/QtScrcpy/main.cpp @@ -25,6 +25,11 @@ int main(int argc, char *argv[]) Stream::init(); QApplication a(argc, argv); + // windows下通过qmake VERSION变量或者rc设置版本号和应用名称后,这里可以直接拿到 + // mac下拿到的是CFBundleVersion的值 + qDebug() << a.applicationVersion(); + qDebug() << a.applicationName(); + installTranslator(); #if defined(Q_OS_WIN32) || defined(Q_OS_OSX) MouseTap::getInstance()->initMouseEventTap(); diff --git a/QtScrcpy/res/Info_mac.plist b/QtScrcpy/res/Info_mac.plist index d35a470..01b5766 100644 --- a/QtScrcpy/res/Info_mac.plist +++ b/QtScrcpy/res/Info_mac.plist @@ -2,73 +2,39 @@ + CFBundleDevelopmentRegion + zh-Hans CFBundleExecutable - QtScrcpy + @EXECUTABLE@ CFBundleGetInfoString - Created by Qt/QMake + Created by rankun CFBundleIconFile - QtScrcpy.icns + @ICON@ CFBundleIdentifier - + rankun.QtScrcpy + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + QtScrcpy CFBundlePackageType APPL CFBundleShortVersionString - 1.0.2 - CFBundleSignature - - CFBundleURLTypes + 1.0.4 + CFBundleSupportedPlatforms - - CFBundleTypeRole - Editor - CFBundleURLName - - CFBundleURLSchemes - - ctim - - - + MacOSX + CFBundleVersion - 102 - Fabric - - APIKey - - Kits - - - KitInfo - - KitName - Crashlytics - - - - LSApplicationCategoryType - public.app-category.utilities + 1.0.4 LSMinimumSystemVersion 10.10 - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - + NSMainStoryboardFile + Main NSPrincipalClass NSApplication - NSSupportsAutomaticGraphicsSwitching - - SUAllowsAutomaticUpdates - NO - SUBundleName - QtScrcpy - SUEnableAutomaticChecks - YES - SUFeedURL - - SUPublicDSAKeyFile - - SUScheduledCheckInterval - 102 + NSSupportsAutomaticGraphicsSwitching + + NSHumanReadableCopyright + Copyright © 2018-2038 rankun. All rights reserved. diff --git a/QtScrcpy/res/QtScrcpy.rc b/QtScrcpy/res/QtScrcpy.rc index 4697da1..5898338 100644 --- a/QtScrcpy/res/QtScrcpy.rc +++ b/QtScrcpy/res/QtScrcpy.rc @@ -1,13 +1,12 @@ #include "winres.h" -#include "../util/version.h" // ͼ -IDI_ICON1 ICON PRODUCT_ICON +IDI_ICON1 ICON "QtScrcpy.ico" // 汾Ϣ VS_VERSION_INFO VERSIONINFO - FILEVERSION FILE_VERSION - PRODUCTVERSION PRODUCT_VERSION + FILEVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH + PRODUCTVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -22,12 +21,12 @@ BEGIN BEGIN BLOCK "080404b0" BEGIN - VALUE "CompanyName", COMPANY_NAME + VALUE "CompanyName", "RanKun" VALUE "FileDescription", "׿ʵʱͬ" - VALUE "FileVersion", FILE_VERSION_STR - VALUE "LegalCopyright", LEGAL_COPYRIGHT - VALUE "ProductName", PRODUCT_NAME - VALUE "ProductVersion", PRODUCT_VERSION_STR + VALUE "FileVersion", VERSION_RC_STR + VALUE "LegalCopyright", "Copyright (C) RanKun 2018-2038. All rights reserved." + VALUE "ProductName", "QtScrcpy" + VALUE "ProductVersion", VERSION_RC_STR END END BLOCK "VarFileInfo" diff --git a/QtScrcpy/util/util.pri b/QtScrcpy/util/util.pri index bf4d5a3..720d7e6 100644 --- a/QtScrcpy/util/util.pri +++ b/QtScrcpy/util/util.pri @@ -2,8 +2,7 @@ include ($$PWD/mousetap/mousetap.pri) HEADERS += \ $$PWD/compat.h \ - $$PWD/bufferutil.h \ - $$PWD/version.h + $$PWD/bufferutil.h SOURCES += \ $$PWD/bufferutil.cpp diff --git a/QtScrcpy/util/version.h b/QtScrcpy/util/version.h deleted file mode 100644 index a59a0b2..0000000 --- a/QtScrcpy/util/version.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef VERSION_H -#define VERSION_H - -#define PRODUCT_ICON "QtScrcpy.ico" // 图标 - -#define QTSCRCPY_MAJOR 1 -#define QTSCRCPY_MINOR 0 -#define QTSCRCPY_PATCH 3 - -#define QTSCRCPY_VERSION_CHK(major, minor, patch) \ - (((major)<<16) | ((minor)<<8) | (patch)) - -// 数值形式版本号,用于版本升级判断 -#define QTSCRCPY_VERSION QTSCRCPY_VERSION_CHK(QTSCRCPY_MAJOR, QTSCRCPY_MINOR, QTSCRCPY_PATCH) - -#define _TOSTR(x) #x -#define TOSTR(x) _TOSTR(x) - -// 字符串形式版本号,用于版本显示 -/* the following are compile time version */ -/* C++11 requires a space between literal and identifier */ -#define QTSCRCPY_VERSION_STR TOSTR(QTSCRCPY_MAJOR) "." TOSTR(QTSCRCPY_MINOR) "." TOSTR(QTSCRCPY_PATCH) - -// rc形式版本号,用于windos rc文件中指定版本号 -#define QTSCRCPY_VERSION_RES QTSCRCPY_MAJOR,QTSCRCPY_MINOR,QTSCRCPY_PATCH - - -// windos rc相关定义 -#define FILE_VERSION QTSCRCPY_VERSION_RES // 文件版本 -#define FILE_VERSION_STR QTSCRCPY_VERSION_STR -#define PRODUCT_VERSION QTSCRCPY_VERSION_RES // 产品版本 -#define PRODUCT_VERSION_STR QTSCRCPY_VERSION_STR -#define COMPANY_NAME "RanKun" -#define FILE_DESCRIPTION "android real time projection software" // 文件说明 -#define LEGAL_COPYRIGHT "Copyright (C) RanKun 2018-2028. All rights reserved." // 版权 -#define PRODUCT_NAME "QtScrcpy" // 产品名称 - -#endif // VERSION_H