Remove windows tray and installer (#8778)
* Remove windows tray and installer * Remove make_exe (installer) target * Change windows $ARC to amd64 for consistency * Fix windows build - revert to winapi 0.2.8 * Remove publishing of windows installer bins
This commit is contained in:
parent
bd4498cffc
commit
114d4433a9
@ -173,7 +173,7 @@ windows:
|
|||||||
- stable
|
- stable
|
||||||
- triggers
|
- triggers
|
||||||
script:
|
script:
|
||||||
- sh scripts/gitlab-build.sh x86_64-pc-windows-msvc x86_64-pc-windows-msvc installer "" "" windows
|
- sh scripts/gitlab-build.sh x86_64-pc-windows-msvc x86_64-pc-windows-msvc amd64 "" "" windows
|
||||||
tags:
|
tags:
|
||||||
- rust-windows
|
- rust-windows
|
||||||
artifacts:
|
artifacts:
|
||||||
|
8
Cargo.lock
generated
8
Cargo.lock
generated
@ -22,7 +22,7 @@ version = "1.2.1"
|
|||||||
source = "git+https://github.com/paritytech/app-dirs-rs#0b37f9481ce29e9d5174ad185bca695b206368eb"
|
source = "git+https://github.com/paritytech/app-dirs-rs#0b37f9481ce29e9d5174ad185bca695b206368eb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"shell32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -2995,10 +2995,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "shell32-sys"
|
name = "shell32-sys"
|
||||||
version = "0.1.1"
|
version = "0.1.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -4032,7 +4032,7 @@ dependencies = [
|
|||||||
"checksum serde_ignored 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01fb142"
|
"checksum serde_ignored 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01fb142"
|
||||||
"checksum serde_json 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c9db7266c7d63a4c4b7fe8719656ccdd51acf1bed6124b174f933b009fb10bcb"
|
"checksum serde_json 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c9db7266c7d63a4c4b7fe8719656ccdd51acf1bed6124b174f933b009fb10bcb"
|
||||||
"checksum sha1 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cc30b1e1e8c40c121ca33b86c23308a090d19974ef001b4bf6e61fd1a0fb095c"
|
"checksum sha1 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cc30b1e1e8c40c121ca33b86c23308a090d19974ef001b4bf6e61fd1a0fb095c"
|
||||||
"checksum shell32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72f20b8f3c060374edb8046591ba28f62448c369ccbdc7b02075103fb3a9e38d"
|
"checksum shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ee04b46101f57121c9da2b151988283b6beb79b34f5bb29a58ee48cb695122c"
|
||||||
"checksum siphasher 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "833011ca526bd88f16778d32c699d325a9ad302fa06381cd66f7be63351d3f6d"
|
"checksum siphasher 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "833011ca526bd88f16778d32c699d325a9ad302fa06381cd66f7be63351d3f6d"
|
||||||
"checksum siphasher 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0df90a788073e8d0235a67e50441d47db7c8ad9debd91cbf43736a2a92d36537"
|
"checksum siphasher 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0df90a788073e8d0235a67e50441d47db7c8ad9debd91cbf43736a2a92d36537"
|
||||||
"checksum skeptic 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24ebf8a06f5f8bae61ae5bbc7af7aac4ef6907ae975130faba1199e5fe82256a"
|
"checksum skeptic 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24ebf8a06f5f8bae61ae5bbc7af7aac4ef6907ae975130faba1199e5fe82256a"
|
||||||
|
@ -1,191 +0,0 @@
|
|||||||
!include WinMessages.nsh
|
|
||||||
|
|
||||||
!define WND_CLASS "Parity"
|
|
||||||
!define WND_TITLE "Parity"
|
|
||||||
!define WAIT_MS 5000
|
|
||||||
!define SYNC_TERM 0x00100001
|
|
||||||
|
|
||||||
!define APPNAME "Parity"
|
|
||||||
!define COMPANYNAME "Parity Technologies"
|
|
||||||
!define DESCRIPTION "Fast, light, robust Ethereum implementation"
|
|
||||||
!define VERSIONMAJOR 1
|
|
||||||
!define VERSIONMINOR 12
|
|
||||||
!define VERSIONBUILD 0
|
|
||||||
!define ARGS ""
|
|
||||||
!define FIRST_START_ARGS "--mode=passive ui"
|
|
||||||
|
|
||||||
!addplugindir .\
|
|
||||||
|
|
||||||
!define HELPURL "https://paritytech.github.io/wiki/" # "Support Information" link
|
|
||||||
!define UPDATEURL "https://github.com/paritytech/parity/releases" # "Product Updates" link
|
|
||||||
!define ABOUTURL "https://github.com/paritytech/parity" # "Publisher" link
|
|
||||||
!define INSTALLSIZE 26120
|
|
||||||
|
|
||||||
!define termMsg "Installer cannot stop running ${WND_TITLE}.$\nDo you want to terminate process?"
|
|
||||||
!define stopMsg "Stopping ${WND_TITLE} Application"
|
|
||||||
|
|
||||||
|
|
||||||
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
|
|
||||||
|
|
||||||
InstallDir "$PROGRAMFILES64\${COMPANYNAME}\${APPNAME}"
|
|
||||||
|
|
||||||
LicenseData "..\LICENSE"
|
|
||||||
Name "${COMPANYNAME} ${APPNAME}"
|
|
||||||
Icon "logo.ico"
|
|
||||||
outFile "installer.exe"
|
|
||||||
|
|
||||||
!include LogicLib.nsh
|
|
||||||
|
|
||||||
page license
|
|
||||||
page directory
|
|
||||||
page instfiles
|
|
||||||
|
|
||||||
!macro VerifyUserIsAdmin
|
|
||||||
UserInfo::GetAccountType
|
|
||||||
pop $0
|
|
||||||
${If} $0 != "admin" ;Require admin rights on NT4+
|
|
||||||
messageBox mb_iconstop "Administrator rights required!"
|
|
||||||
setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
|
|
||||||
quit
|
|
||||||
${EndIf}
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
!macro TerminateApp
|
|
||||||
Push $0 ; window handle
|
|
||||||
Push $1
|
|
||||||
Push $2 ; process handle
|
|
||||||
DetailPrint "$(stopMsg)"
|
|
||||||
FindWindow $0 '${WND_CLASS}' ''
|
|
||||||
IntCmp $0 0 done
|
|
||||||
System::Call 'user32.dll::GetWindowThreadProcessId(i r0, *i .r1) i .r2'
|
|
||||||
System::Call 'kernel32.dll::OpenProcess(i ${SYNC_TERM}, i 0, i r1) i .r2'
|
|
||||||
SendMessage $0 ${WM_CLOSE} 0 0 /TIMEOUT=${TO_MS}
|
|
||||||
System::Call 'kernel32.dll::WaitForSingleObject(i r2, i ${WAIT_MS}) i .r1'
|
|
||||||
IntCmp $1 0 close
|
|
||||||
MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION "$(termMsg)" /SD IDYES IDYES terminate IDNO close
|
|
||||||
System::Call 'kernel32.dll::CloseHandle(i r2) i .r1'
|
|
||||||
Quit
|
|
||||||
terminate:
|
|
||||||
System::Call 'kernel32.dll::TerminateProcess(i r2, i 0) i .r1'
|
|
||||||
close:
|
|
||||||
System::Call 'kernel32.dll::CloseHandle(i r2) i .r1'
|
|
||||||
done:
|
|
||||||
Pop $2
|
|
||||||
Pop $1
|
|
||||||
Pop $0
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
function .onInit
|
|
||||||
setShellVarContext all
|
|
||||||
!insertmacro VerifyUserIsAdmin
|
|
||||||
functionEnd
|
|
||||||
|
|
||||||
section "install"
|
|
||||||
# Files for the install directory - to build the installer, these should be in the same directory as the install script (this file)
|
|
||||||
setOutPath $INSTDIR
|
|
||||||
|
|
||||||
# Close parity if running
|
|
||||||
!insertmacro TerminateApp
|
|
||||||
|
|
||||||
# Files added here should be removed by the uninstaller (see section "uninstall")
|
|
||||||
file /oname=parity.exe ..\target\x86_64-pc-windows-msvc\release\parity.exe
|
|
||||||
file /oname=parity-evm.exe ..\target\x86_64-pc-windows-msvc\release\parity-evm.exe
|
|
||||||
file /oname=ethstore.exe ..\target\x86_64-pc-windows-msvc\release\ethstore.exe
|
|
||||||
file /oname=ethkey.exe ..\target\x86_64-pc-windows-msvc\release\ethkey.exe
|
|
||||||
file /oname=ptray.exe ..\windows\ptray\x64\Release\ptray.exe
|
|
||||||
|
|
||||||
file "logo.ico"
|
|
||||||
# Add any other files for the install directory (license files, app data, etc) here
|
|
||||||
|
|
||||||
# Uninstaller - See function un.onInit and section "uninstall" for configuration
|
|
||||||
writeUninstaller "$INSTDIR\uninstall.exe"
|
|
||||||
|
|
||||||
# Start Menu
|
|
||||||
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
|
|
||||||
delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
|
|
||||||
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME} Ethereum.lnk" "$INSTDIR\ptray.exe" "ui" "$INSTDIR\logo.ico"
|
|
||||||
createShortCut "$DESKTOP\${APPNAME} Ethereum.lnk" "$INSTDIR\ptray.exe" "ui" "$INSTDIR\logo.ico"
|
|
||||||
|
|
||||||
# Firewall remove rules if exists
|
|
||||||
SimpleFC::AdvRemoveRule "Parity incoming peers (TCP:30303)"
|
|
||||||
SimpleFC::AdvRemoveRule "Parity outgoing peers (TCP:30303)"
|
|
||||||
SimpleFC::AdvRemoveRule "Parity web queries (TCP:80)"
|
|
||||||
SimpleFC::AdvRemoveRule "Parity UDP discovery (UDP:30303)"
|
|
||||||
|
|
||||||
# Firewall exception rules
|
|
||||||
SimpleFC::AdvAddRule "Parity incoming peers (TCP:30303)" "" 6 1 1 2147483647 1 "$INSTDIR\parity.exe" "" "" "Parity" 30303 "" "" ""
|
|
||||||
SimpleFC::AdvAddRule "Parity outgoing peers (TCP:30303)" "" 6 2 1 2147483647 1 "$INSTDIR\parity.exe" "" "" "Parity" "" 30303 "" ""
|
|
||||||
SimpleFC::AdvAddRule "Parity UDP discovery (UDP:30303)" "" 17 2 1 2147483647 1 "$INSTDIR\parity.exe" "" "" "Parity" "" 30303 "" ""
|
|
||||||
|
|
||||||
# Registry information for add/remove programs
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${APPNAME} - ${DESCRIPTION}"
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\logo.ico$\""
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "${COMPANYNAME}"
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\""
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\""
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\""
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}"
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR}
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR}
|
|
||||||
# There is no option for modifying or repairing the install
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1
|
|
||||||
# Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${INSTALLSIZE}
|
|
||||||
|
|
||||||
WriteRegStr HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Run" ${APPNAME} "$INSTDIR\ptray.exe ${ARGS}"
|
|
||||||
DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "${APPNAME}"
|
|
||||||
ExecShell "" "$INSTDIR\ptray.exe" "${FIRST_START_ARGS}"
|
|
||||||
sectionEnd
|
|
||||||
|
|
||||||
# Uninstaller
|
|
||||||
|
|
||||||
function un.onInit
|
|
||||||
SetShellVarContext all
|
|
||||||
|
|
||||||
#Verify the uninstaller - last chance to back out
|
|
||||||
MessageBox MB_OKCANCEL "Permanently remove ${APPNAME}?" IDOK next
|
|
||||||
Abort
|
|
||||||
|
|
||||||
next:
|
|
||||||
!insertmacro VerifyUserIsAdmin
|
|
||||||
functionEnd
|
|
||||||
|
|
||||||
section "uninstall"
|
|
||||||
!insertmacro TerminateApp
|
|
||||||
# Remove Start Menu launcher
|
|
||||||
delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
|
|
||||||
delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME} Ethereum.lnk"
|
|
||||||
delete "$DESKTOP\${APPNAME} Ethereum.lnk"
|
|
||||||
|
|
||||||
# Try to remove the Start Menu folder - this will only happen if it is empty
|
|
||||||
rmDir "$SMPROGRAMS\${COMPANYNAME}"
|
|
||||||
|
|
||||||
# Remove files
|
|
||||||
delete $INSTDIR\parity.exe
|
|
||||||
delete $INSTDIR\parity-evm.exe
|
|
||||||
delete $INSTDIR\ethstore.exe
|
|
||||||
delete $INSTDIR\ethkey.exe
|
|
||||||
delete $INSTDIR\ptray.exe
|
|
||||||
delete $INSTDIR\logo.ico
|
|
||||||
|
|
||||||
# Always delete uninstaller as the last action
|
|
||||||
delete $INSTDIR\uninstall.exe
|
|
||||||
|
|
||||||
# Try to remove the install directory - this will only happen if it is empty
|
|
||||||
rmDir $INSTDIR
|
|
||||||
|
|
||||||
# Firewall exception rules
|
|
||||||
SimpleFC::AdvRemoveRule "Parity incoming peers (TCP:30303)"
|
|
||||||
SimpleFC::AdvRemoveRule "Parity outgoing peers (TCP:30303)"
|
|
||||||
SimpleFC::AdvRemoveRule "Parity web queries (TCP:80)"
|
|
||||||
SimpleFC::AdvRemoveRule "Parity UDP discovery (UDP:30303)"
|
|
||||||
|
|
||||||
# Remove uninstaller information from the registry
|
|
||||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
|
|
||||||
DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "${APPNAME}"
|
|
||||||
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "${APPNAME}"
|
|
||||||
sectionEnd
|
|
BIN
nsis/logo.ico
BIN
nsis/logo.ico
Binary file not shown.
Before Width: | Height: | Size: 100 KiB |
@ -44,7 +44,6 @@ set_env_win () {
|
|||||||
set RUST_BACKTRACE=1
|
set RUST_BACKTRACE=1
|
||||||
#export RUSTFLAGS=$RUSTFLAGS
|
#export RUSTFLAGS=$RUSTFLAGS
|
||||||
rustup default stable-x86_64-pc-windows-msvc
|
rustup default stable-x86_64-pc-windows-msvc
|
||||||
echo "MsBuild.exe windows\ptray\ptray.vcxproj /p:Platform=x64 /p:Configuration=Release" > msbuild.cmd
|
|
||||||
echo "@ signtool sign /f "\%"1 /p "\%"2 /tr http://timestamp.comodoca.com /du https://parity.io "\%"3" > sign.cmd
|
echo "@ signtool sign /f "\%"1 /p "\%"2 /tr http://timestamp.comodoca.com /du https://parity.io "\%"3" > sign.cmd
|
||||||
}
|
}
|
||||||
build () {
|
build () {
|
||||||
@ -166,19 +165,6 @@ make_pkg () {
|
|||||||
sign_exe () {
|
sign_exe () {
|
||||||
./sign.cmd $keyfile $certpass "target/$PLATFORM/release/parity.exe"
|
./sign.cmd $keyfile $certpass "target/$PLATFORM/release/parity.exe"
|
||||||
}
|
}
|
||||||
make_exe () {
|
|
||||||
./msbuild.cmd
|
|
||||||
./sign.cmd $keyfile $certpass windows/ptray/x64/release/ptray.exe
|
|
||||||
cd nsis
|
|
||||||
curl -sL --url "https://github.com/paritytech/win-build/raw/master/vc_redist.x64.exe" -o vc_redist.x64.exe
|
|
||||||
echo "makensis.exe installer.nsi" > nsis.cmd
|
|
||||||
./nsis.cmd
|
|
||||||
cd ..
|
|
||||||
cp nsis/installer.exe "parity_"$VER"_"$IDENT"_"$ARC"."$EXT
|
|
||||||
./sign.cmd $keyfile $certpass "parity_"$VER"_"$IDENT"_"$ARC"."$EXT
|
|
||||||
$MD5_BIN "parity_"$VER"_"$IDENT"_"$ARC"."$EXT -p %h > "parity_"$VER"_"$IDENT"_"$ARC"."$EXT".md5"
|
|
||||||
$SHA256_BIN "parity_"$VER"_"$IDENT"_"$ARC"."$EXT -p %h > "parity_"$VER"_"$IDENT"_"$ARC"."$EXT".sha256"
|
|
||||||
}
|
|
||||||
push_binaries () {
|
push_binaries () {
|
||||||
echo "Push binaries to AWS S3"
|
echo "Push binaries to AWS S3"
|
||||||
aws configure set aws_access_key_id $s3_key
|
aws configure set aws_access_key_id $s3_key
|
||||||
@ -205,9 +191,6 @@ push_binaries () {
|
|||||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/whisper$S3WIN --body target/$PLATFORM/release/whisper$S3WIN
|
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/whisper$S3WIN --body target/$PLATFORM/release/whisper$S3WIN
|
||||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/whisper$S3WIN.md5 --body whisper$S3WIN.md5
|
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/whisper$S3WIN.md5 --body whisper$S3WIN.md5
|
||||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/whisper$S3WIN.sha256 --body whisper$S3WIN.sha256
|
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/whisper$S3WIN.sha256 --body whisper$S3WIN.sha256
|
||||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/"parity_"$VER"_"$IDENT"_"$ARC"."$EXT --body "parity_"$VER"_"$IDENT"_"$ARC"."$EXT
|
|
||||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/"parity_"$VER"_"$IDENT"_"$ARC"."$EXT".md5" --body "parity_"$VER"_"$IDENT"_"$ARC"."$EXT".md5"
|
|
||||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/"parity_"$VER"_"$IDENT"_"$ARC"."$EXT".sha256" --body "parity_"$VER"_"$IDENT"_"$ARC"."$EXT".sha256"
|
|
||||||
}
|
}
|
||||||
make_archive () {
|
make_archive () {
|
||||||
echo "add artifacts to archive"
|
echo "add artifacts to archive"
|
||||||
@ -356,7 +339,6 @@ case $BUILD_PLATFORM in
|
|||||||
build
|
build
|
||||||
sign_exe
|
sign_exe
|
||||||
calculate_checksums
|
calculate_checksums
|
||||||
make_exe
|
|
||||||
make_archive
|
make_archive
|
||||||
push_binaries
|
push_binaries
|
||||||
updater_push_release
|
updater_push_release
|
||||||
|
@ -1,360 +0,0 @@
|
|||||||
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Parity.
|
|
||||||
|
|
||||||
// Parity is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Parity is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <malloc.h>
|
|
||||||
#include <memory.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
#include <Windows.h>
|
|
||||||
#include <Shellapi.h>
|
|
||||||
#include <Shlwapi.h>
|
|
||||||
#include <tlhelp32.h>
|
|
||||||
|
|
||||||
#include <SDKDDKVer.h>
|
|
||||||
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
#pragma comment(lib, "shlwapi.lib")
|
|
||||||
|
|
||||||
#define MAX_LOADSTRING 100
|
|
||||||
#define IDM_EXIT 100
|
|
||||||
#define IDM_OPEN 101
|
|
||||||
#define IDM_AUTOSTART 102
|
|
||||||
#define WM_USER_SHELLICON WM_USER + 1
|
|
||||||
|
|
||||||
HANDLE parityHandle = INVALID_HANDLE_VALUE;
|
|
||||||
DWORD parityProcId = 0;
|
|
||||||
NOTIFYICONDATA nidApp;
|
|
||||||
WCHAR szTitle[MAX_LOADSTRING];
|
|
||||||
WCHAR szWindowClass[MAX_LOADSTRING];
|
|
||||||
LPCWCHAR commandLineFiltered = L"";
|
|
||||||
|
|
||||||
LPCWSTR cParityExe = _T("parity.exe");
|
|
||||||
|
|
||||||
ATOM MyRegisterClass(HINSTANCE hInstance);
|
|
||||||
bool InitInstance(HINSTANCE, int, LPWSTR cmdLine);
|
|
||||||
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
|
|
||||||
void KillParity();
|
|
||||||
void OpenUI();
|
|
||||||
bool ParityIsRunning();
|
|
||||||
bool AutostartEnabled();
|
|
||||||
void EnableAutostart(bool enable);
|
|
||||||
|
|
||||||
bool GetParityExePath(TCHAR* dest, size_t destSize)
|
|
||||||
{
|
|
||||||
if (!dest || MAX_PATH > destSize)
|
|
||||||
return false;
|
|
||||||
GetModuleFileName(NULL, dest, (DWORD)destSize);
|
|
||||||
if (!PathRemoveFileSpec(dest))
|
|
||||||
return false;
|
|
||||||
return PathAppend(dest, _T("parity.exe")) == TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GetTrayExePath(TCHAR* dest, size_t destSize)
|
|
||||||
{
|
|
||||||
if (!dest || MAX_PATH > destSize)
|
|
||||||
return false;
|
|
||||||
GetModuleFileName(NULL, dest, (DWORD)destSize);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
|
|
||||||
_In_opt_ HINSTANCE hPrevInstance,
|
|
||||||
_In_ LPWSTR lpCmdLine,
|
|
||||||
_In_ int nCmdShow)
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(hPrevInstance);
|
|
||||||
UNREFERENCED_PARAMETER(lpCmdLine);
|
|
||||||
|
|
||||||
CreateMutex(0, FALSE, _T("Local\\ParityTray"));
|
|
||||||
if (GetLastError() == ERROR_ALREADY_EXISTS) {
|
|
||||||
// open the UI
|
|
||||||
OpenUI();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
|
|
||||||
LoadStringW(hInstance, IDC_PTRAY, szWindowClass, MAX_LOADSTRING);
|
|
||||||
MyRegisterClass(hInstance);
|
|
||||||
|
|
||||||
if (!InitInstance(hInstance, nCmdShow, lpCmdLine))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_PTRAY));
|
|
||||||
MSG msg;
|
|
||||||
// Main message loop:
|
|
||||||
while (GetMessage(&msg, nullptr, 0, 0))
|
|
||||||
{
|
|
||||||
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
|
|
||||||
{
|
|
||||||
TranslateMessage(&msg);
|
|
||||||
DispatchMessage(&msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (int)msg.wParam;
|
|
||||||
}
|
|
||||||
|
|
||||||
ATOM MyRegisterClass(HINSTANCE hInstance)
|
|
||||||
{
|
|
||||||
WNDCLASSEXW wcex;
|
|
||||||
|
|
||||||
wcex.cbSize = sizeof(WNDCLASSEX);
|
|
||||||
|
|
||||||
wcex.style = CS_HREDRAW | CS_VREDRAW;
|
|
||||||
wcex.lpfnWndProc = WndProc;
|
|
||||||
wcex.cbClsExtra = 0;
|
|
||||||
wcex.cbWndExtra = 0;
|
|
||||||
wcex.hInstance = hInstance;
|
|
||||||
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_PTRAY));
|
|
||||||
wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
|
|
||||||
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
|
|
||||||
wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_PTRAY);
|
|
||||||
wcex.lpszClassName = szWindowClass;
|
|
||||||
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
|
|
||||||
|
|
||||||
return RegisterClassExW(&wcex);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool InitInstance(HINSTANCE hInstance, int nCmdShow, LPWSTR cmdLine)
|
|
||||||
{
|
|
||||||
if (lstrlen(cmdLine) > 0)
|
|
||||||
{
|
|
||||||
int commandLineArgs = 0;
|
|
||||||
LPWSTR* commandLine = CommandLineToArgvW(cmdLine, &commandLineArgs);
|
|
||||||
LPWSTR filteredArgs = new WCHAR[lstrlen(cmdLine) + 2];
|
|
||||||
filteredArgs[0] = '\0';
|
|
||||||
for (int i = 0; i < commandLineArgs; i++)
|
|
||||||
{
|
|
||||||
// Remove "ui" from command line
|
|
||||||
if (lstrcmp(commandLine[i], L"ui") != 0)
|
|
||||||
{
|
|
||||||
lstrcat(filteredArgs, commandLine[i]);
|
|
||||||
lstrcat(filteredArgs, L" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
commandLineFiltered = filteredArgs;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if already running
|
|
||||||
PROCESSENTRY32 entry;
|
|
||||||
entry.dwSize = sizeof(PROCESSENTRY32);
|
|
||||||
|
|
||||||
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
|
|
||||||
if (Process32First(snapshot, &entry) == TRUE)
|
|
||||||
{
|
|
||||||
while (Process32Next(snapshot, &entry) == TRUE)
|
|
||||||
{
|
|
||||||
if (lstrcmp(entry.szExeFile, cParityExe) == 0)
|
|
||||||
{
|
|
||||||
parityHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
|
|
||||||
parityProcId = entry.th32ProcessID;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CloseHandle(snapshot);
|
|
||||||
|
|
||||||
if (parityHandle == INVALID_HANDLE_VALUE)
|
|
||||||
{
|
|
||||||
// Launch parity
|
|
||||||
TCHAR path[MAX_PATH] = { 0 };
|
|
||||||
if (!GetParityExePath(path, MAX_PATH))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
PROCESS_INFORMATION procInfo = { 0 };
|
|
||||||
STARTUPINFO startupInfo = { sizeof(STARTUPINFO) };
|
|
||||||
|
|
||||||
LPWSTR cmd = new WCHAR[lstrlen(cmdLine) + lstrlen(path) + 2];
|
|
||||||
lstrcpy(cmd, path);
|
|
||||||
lstrcat(cmd, _T(" "));
|
|
||||||
lstrcat(cmd, cmdLine);
|
|
||||||
if (!CreateProcess(nullptr, cmd, nullptr, nullptr, false, CREATE_NO_WINDOW, nullptr, nullptr, &startupInfo, &procInfo))
|
|
||||||
return false;
|
|
||||||
delete[] cmd;
|
|
||||||
parityHandle = procInfo.hProcess;
|
|
||||||
parityProcId = procInfo.dwProcessId;
|
|
||||||
}
|
|
||||||
|
|
||||||
HWND hWnd = CreateWindowW(szWindowClass, szTitle, 0,
|
|
||||||
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
|
|
||||||
|
|
||||||
if (!hWnd)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
HICON hMainIcon = LoadIcon(hInstance, (LPCTSTR)MAKEINTRESOURCE(IDI_PTRAY));
|
|
||||||
|
|
||||||
nidApp.cbSize = sizeof(NOTIFYICONDATA); // sizeof the struct in bytes
|
|
||||||
nidApp.hWnd = (HWND)hWnd; //handle of the window which will process this app. messages
|
|
||||||
nidApp.uID = IDI_PTRAY; //ID of the icon that willl appear in the system tray
|
|
||||||
nidApp.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; //ORing of all the flags
|
|
||||||
nidApp.hIcon = hMainIcon; // handle of the Icon to be displayed, obtained from LoadIcon
|
|
||||||
nidApp.uCallbackMessage = WM_USER_SHELLICON;
|
|
||||||
LoadString(hInstance, IDS_CONTROL_PARITY, nidApp.szTip, MAX_LOADSTRING);
|
|
||||||
Shell_NotifyIcon(NIM_ADD, &nidApp);
|
|
||||||
|
|
||||||
SetTimer(hWnd, 0, 1000, nullptr);
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|
||||||
{
|
|
||||||
switch (message)
|
|
||||||
{
|
|
||||||
case WM_USER_SHELLICON:
|
|
||||||
// systray msg callback
|
|
||||||
POINT lpClickPoint;
|
|
||||||
switch (LOWORD(lParam))
|
|
||||||
{
|
|
||||||
case WM_LBUTTONDOWN:
|
|
||||||
OpenUI();
|
|
||||||
break;
|
|
||||||
case WM_RBUTTONDOWN:
|
|
||||||
UINT uFlag = MF_BYPOSITION | MF_STRING;
|
|
||||||
GetCursorPos(&lpClickPoint);
|
|
||||||
HMENU hPopMenu = CreatePopupMenu();
|
|
||||||
InsertMenu(hPopMenu, 0xFFFFFFFF, MF_BYPOSITION | MF_STRING, IDM_OPEN, _T("Open"));
|
|
||||||
InsertMenu(hPopMenu, 0xFFFFFFFF, MF_SEPARATOR | MF_BYPOSITION, 0, nullptr);
|
|
||||||
InsertMenu(hPopMenu, 0xFFFFFFFF, MF_BYPOSITION | MF_STRING, IDM_AUTOSTART, _T("Start at Login"));
|
|
||||||
InsertMenu(hPopMenu, 0xFFFFFFFF, MF_SEPARATOR | MF_BYPOSITION, 0, nullptr);
|
|
||||||
InsertMenu(hPopMenu, 0xFFFFFFFF, MF_BYPOSITION | MF_STRING, IDM_EXIT, _T("Exit"));
|
|
||||||
bool autoStart = AutostartEnabled();
|
|
||||||
CheckMenuItem(hPopMenu, IDM_AUTOSTART, autoStart ? MF_CHECKED : autoStart);
|
|
||||||
|
|
||||||
SetForegroundWindow(hWnd);
|
|
||||||
TrackPopupMenu(hPopMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_BOTTOMALIGN, lpClickPoint.x, lpClickPoint.y, 0, hWnd, NULL);
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_COMMAND:
|
|
||||||
{
|
|
||||||
int wmId = LOWORD(wParam);
|
|
||||||
// Parse the menu selections:
|
|
||||||
switch (wmId)
|
|
||||||
{
|
|
||||||
case IDM_EXIT:
|
|
||||||
DestroyWindow(hWnd);
|
|
||||||
break;
|
|
||||||
case IDM_OPEN:
|
|
||||||
OpenUI();
|
|
||||||
break;
|
|
||||||
case IDM_AUTOSTART:
|
|
||||||
{
|
|
||||||
bool autoStart = AutostartEnabled();
|
|
||||||
EnableAutostart(!autoStart);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return DefWindowProc(hWnd, message, wParam, lParam);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_DESTROY:
|
|
||||||
Shell_NotifyIcon(NIM_DELETE, &nidApp);
|
|
||||||
KillParity();
|
|
||||||
PostQuitMessage(0);
|
|
||||||
break;
|
|
||||||
case WM_TIMER:
|
|
||||||
if (!ParityIsRunning())
|
|
||||||
DestroyWindow(hWnd);
|
|
||||||
default:
|
|
||||||
return DefWindowProc(hWnd, message, wParam, lParam);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void KillParity()
|
|
||||||
{
|
|
||||||
DWORD procId = parityProcId;
|
|
||||||
//This does not require the console window to be visible.
|
|
||||||
if (AttachConsole(procId))
|
|
||||||
{
|
|
||||||
// Disable Ctrl-C handling for our program
|
|
||||||
SetConsoleCtrlHandler(nullptr, true);
|
|
||||||
GenerateConsoleCtrlEvent(CTRL_C_EVENT, 0);
|
|
||||||
FreeConsole();
|
|
||||||
|
|
||||||
//Re-enable Ctrl-C handling or any subsequently started
|
|
||||||
//programs will inherit the disabled state.
|
|
||||||
SetConsoleCtrlHandler(nullptr, false);
|
|
||||||
}
|
|
||||||
WaitForSingleObject(parityHandle, INFINITE);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ParityIsRunning()
|
|
||||||
{
|
|
||||||
return WaitForSingleObject(parityHandle, 0) == WAIT_TIMEOUT;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenUI()
|
|
||||||
{
|
|
||||||
// Launch parity
|
|
||||||
TCHAR path[MAX_PATH] = { 0 };
|
|
||||||
if (!GetParityExePath(path, MAX_PATH))
|
|
||||||
return;
|
|
||||||
|
|
||||||
PROCESS_INFORMATION procInfo = { 0 };
|
|
||||||
STARTUPINFO startupInfo = { sizeof(STARTUPINFO) };
|
|
||||||
|
|
||||||
LPWSTR args = new WCHAR[lstrlen(commandLineFiltered) + MAX_PATH + 2];
|
|
||||||
lstrcpy(args, L"parity.exe ");
|
|
||||||
lstrcat(args, commandLineFiltered);
|
|
||||||
lstrcat(args, L" ui");
|
|
||||||
CreateProcess(path, args, nullptr, nullptr, false, CREATE_NO_WINDOW, nullptr, nullptr, &startupInfo, &procInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AutostartEnabled() {
|
|
||||||
HKEY hKey;
|
|
||||||
LONG lRes = RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_READ, &hKey);
|
|
||||||
if (lRes != ERROR_SUCCESS)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
WCHAR szBuffer[512];
|
|
||||||
DWORD dwBufferSize = sizeof(szBuffer);
|
|
||||||
ULONG nError;
|
|
||||||
nError = RegQueryValueExW(hKey, L"Parity", 0, nullptr, (LPBYTE)szBuffer, &dwBufferSize);
|
|
||||||
if (ERROR_SUCCESS != nError)
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void EnableAutostart(bool enable) {
|
|
||||||
HKEY hKey;
|
|
||||||
LONG lRes = RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_WRITE, &hKey);
|
|
||||||
if (lRes != ERROR_SUCCESS)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (enable)
|
|
||||||
{
|
|
||||||
LPWSTR args = new WCHAR[lstrlen(commandLineFiltered) + MAX_PATH + 2];
|
|
||||||
if (GetTrayExePath(args, MAX_PATH))
|
|
||||||
{
|
|
||||||
lstrcat(args, L" ");
|
|
||||||
lstrcat(args, commandLineFiltered);
|
|
||||||
RegSetValueEx(hKey, L"Parity", 0, REG_SZ, (LPBYTE)args, MAX_PATH);
|
|
||||||
}
|
|
||||||
delete[] args;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
RegDeleteValue(hKey, L"Parity");
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 100 KiB |
Binary file not shown.
@ -1,155 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{37C89E90-8C9E-4FFC-AAE7-B3695D5EB6F4}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>ptray</RootNamespace>
|
|
||||||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="Shared">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="Resource.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="ptray.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="ptray.rc" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Image Include="ptray.ico" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
Binary file not shown.
@ -1,8 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
// Including SDKDDKVer.h defines the highest available Windows platform.
|
|
||||||
|
|
||||||
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
|
|
||||||
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
|
|
||||||
|
|
||||||
#include <SDKDDKVer.h>
|
|
Loading…
Reference in New Issue
Block a user