mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-21 03:28:59 -04:00
Banish KVASD
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6129 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
8e0f970149
commit
91b5edcca1
CMake
CMakeCPackOptions.cmake.inCMakeLists.txtDarwin
KVASD-installer
KVASD-installer.xcodeproj
KVASD-installer
Credits.rtf
Images.xcassets/AppIcon.appiconset
Contents.jsonicon_128x128.pngicon_128x128@2x.pngicon_16x16.pngicon_16x16@2x.pngicon_256x256.pngicon_256x256@2x.pngicon_32x32.pngicon_32x32@2x.pngicon_512x512.pngicon_512x512@2x.png
InfoPlist.stringsKVASD-installer-Info.plistKVASD-installer-Prefix.pchMainMenu.xibWSJTAppDelegate.applescriptmain.mcontrib
Darwin/KVASD-installer.app/Contents
NSIS
@ -1,43 +0,0 @@
|
||||
#
|
||||
# CMake script to fetch kvasd binary for the current platform
|
||||
#
|
||||
set (kvasd_NAME "${URL}/${SYSTEM_NAME}/kvasd${EXECUTABLE_SUFFIX}")
|
||||
set (kvasd_target "contrib/kvasd${EXECUTABLE_SUFFIX}")
|
||||
|
||||
message (STATUS "downloading file: ${kvasd_NAME}.md5")
|
||||
file (
|
||||
DOWNLOAD "${kvasd_NAME}.md5" "${kvasd_target}.md5"
|
||||
TIMEOUT 120
|
||||
STATUS status
|
||||
LOG log
|
||||
SHOW_PROGRESS
|
||||
)
|
||||
list (GET status 0 rc)
|
||||
if (rc)
|
||||
message (WARNING "${status}")
|
||||
message (FATAL_ERROR "${log}")
|
||||
endif (rc)
|
||||
file (READ "${kvasd_target}.md5" md5sum)
|
||||
string (REGEX MATCH "[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]" md5sum "${md5sum}")
|
||||
|
||||
if (EXISTS "${kvasd_target}")
|
||||
file (MD5 "${kvasd_target}" current_md5sum)
|
||||
endif (EXISTS "${kvasd_target}")
|
||||
if (NOT "${md5sum}" STREQUAL "${current_md5sum}")
|
||||
message (STATUS "downloading file: ${kvasd_NAME}")
|
||||
file (
|
||||
DOWNLOAD ${kvasd_NAME} contrib/kvasd${EXECUTABLE_SUFFIX}
|
||||
TIMEOUT 120
|
||||
STATUS status
|
||||
LOG log
|
||||
SHOW_PROGRESS
|
||||
EXPECTED_MD5 "${md5sum}"
|
||||
)
|
||||
list (GET status 0 rc)
|
||||
if (rc)
|
||||
message (WARNING "${status}")
|
||||
message (FATAL_ERROR "${log}")
|
||||
endif (rc)
|
||||
else (NOT "${md5sum}" STREQUAL "${current_md5sum}")
|
||||
message (STATUS "file: ${kvasd_NAME} up to date")
|
||||
endif (NOT "${md5sum}" STREQUAL "${current_md5sum}")
|
@ -14,11 +14,9 @@ set (CPACK_STRIP_FILES TRUE)
|
||||
#
|
||||
# components
|
||||
#
|
||||
#set (CPACK_COMPONENTS_ALL runtime kvasd)
|
||||
#set (CPACK_COMPONENTS_ALL runtime)
|
||||
#set (CPACK_COMPONENT_RUNTIME_DISPLAY_NAME "@PROJECT_NAME@ Application")
|
||||
#set (CPACK_COMPONENT_RUNTIME_DESCRIPTION "@WSJTX_DESCRIPTION_SUMMARY@")
|
||||
#set (CPACK_COMPONENT_KVASD_DISPLAY_NAME "KVASD Reed Solomon Decoder")
|
||||
#set (CPACK_COMPONENT_KVASD_DESCRIPTION "Optional decoder component")
|
||||
|
||||
if (CPACK_GENERATOR MATCHES "NSIS")
|
||||
set (CPACK_STRIP_FILES FALSE) # breaks Qt packaging on Windows
|
||||
@ -45,198 +43,6 @@ if (CPACK_GENERATOR MATCHES "NSIS")
|
||||
set (CPACK_NSIS_CONTACT "${CPACK_PACKAGE_CONTACT}")
|
||||
set (CPACK_NSIS_MUI_FINISHPAGE_RUN "wsjtx.exe")
|
||||
set (CPACK_NSIS_MODIFY_PATH ON)
|
||||
|
||||
set (CPACK_NSIS_EXTRA_DEFINES "
|
||||
;
|
||||
; enable local plugins
|
||||
;
|
||||
!ifdef NSIS_WIN32_MAKENSIS
|
||||
!define NSISCONF_3 ';' ; NSIS 2 tries to parse some preprocessor instructions inside \"!if 0\" blocks!
|
||||
!addincludedir '@CMAKE_CURRENT_SOURCE_DIR@\\contrib\\NSIS\\Include'
|
||||
!if \${NSIS_PACKEDVERSION} > 0x02ffffff ; NSIS 3+:
|
||||
!define /redef NSISCONF_3 ''
|
||||
\${NSISCONF_3} !addplugindir /x86-ansi '@CMAKE_CURRENT_SOURCE_DIR@\\contrib\\NSIS\\Plugins-i386-ansi'
|
||||
\${NSISCONF_3} !addplugindir /x86-unicode '@CMAKE_CURRENT_SOURCE_DIR@\\contrib\\NSIS\\Plugins-i386-unicode'
|
||||
!else ; NSIS 2:
|
||||
!addplugindir '@CMAKE_CURRENT_SOURCE_DIR@\\contrib\\NSIS\\Plugins-i386-ansi'
|
||||
!endif ;~ NSIS_PACKEDVERSION
|
||||
!undef NSISCONF_3
|
||||
!endif ;~ NSIS_WIN32_MAKENSIS
|
||||
|
||||
; global variables
|
||||
Var KVASD_EXECUTABLE
|
||||
Var CB_INSTALL_KVASD
|
||||
Var INSTALL_KVASD
|
||||
Var RichEditLicense
|
||||
Var CheckBoxAgree
|
||||
Var KVASD_LICENSE
|
||||
|
||||
; page callbacks
|
||||
Function KVASD_page_create
|
||||
Push $R0
|
||||
|
||||
\${If} $INSTALL_KVASD = \${BST_CHECKED}
|
||||
\${AndIfNot} \${FileExists} $KVASD_LICENSE
|
||||
GetTempFileName $KVASD_LICENSE
|
||||
retry_eula:
|
||||
NSISdl::download /TIMEOUT=30000 @PROJECT_KVASD_URL@/kvasd_eula.txt $KVASD_LICENSE
|
||||
Pop $R0
|
||||
\${If} $R0 != success
|
||||
MessageBox MB_RETRYCANCEL|MB_ICONQUESTION 'Download: @PROJECT_KVASD_URL@/kvasd_eula.txt$\\nFailed: $R0' IDRETRY retry_eula
|
||||
StrCpy $INSTALL_KVASD \${BST_UNCHECKED}
|
||||
Delete $KVASD_LICENSE
|
||||
\${EndIf}
|
||||
\${EndIf}
|
||||
|
||||
\${If} $INSTALL_KVASD = \${BST_CHECKED}
|
||||
\${AndIf} \${FileExists} $KVASD_LICENSE
|
||||
!insertmacro MUI_HEADER_TEXT `$(MUI_TEXT_LICENSE_TITLE)` `Please agree the terms of this license before installing KVASD`
|
||||
|
||||
; disable install button until agreed
|
||||
GetDlgItem $R0 $HWNDPARENT 1
|
||||
EnableWindow $R0 0
|
||||
|
||||
nsDialogs::Create 1018
|
||||
Pop $R0
|
||||
; \${If} $R0 == error
|
||||
; Abort
|
||||
; \${EndIf}
|
||||
|
||||
nsDialogs::CreateControl RichEdit20A \${WS_VISIBLE}|\${WS_CHILD}|\${WS_TABSTOP}|\${WS_VSCROLL}|\${ES_MULTILINE}|\${ES_READONLY} \${__NSD_Text_EXSTYLE} 0 0 100% -24u ''
|
||||
Pop $RichEditLicense
|
||||
|
||||
nsRichEdit::Load $RichEditLicense $KVASD_LICENSE
|
||||
|
||||
\${NSD_CreateCheckBox} 0 -20u 160u 12u `$(^AcceptBtn)`
|
||||
Pop $CheckBoxAgree
|
||||
\${NSD_OnClick} $CheckBoxAgree KVASD_Page_CheckBoxAgree_Click
|
||||
nsDialogs::Show
|
||||
\${Else}
|
||||
Abort ; skip page
|
||||
\${EndIf}
|
||||
|
||||
Pop $R0
|
||||
FunctionEnd
|
||||
|
||||
Function KVASD_page_leave
|
||||
FunctionEnd
|
||||
|
||||
; field callbacks
|
||||
Function KVASD_Page_CheckBoxAgree_Click
|
||||
Pop $0
|
||||
|
||||
\${NSD_GetState} $CheckBoxAgree $R0
|
||||
\${If} $R0 = \${BST_CHECKED}
|
||||
GetDlgItem $R0 $HWNDPARENT 1
|
||||
EnableWindow $R0 1
|
||||
\${Else}
|
||||
GetDlgItem $R0 $HWNDPARENT 1
|
||||
EnableWindow $R0 0
|
||||
\${EndIf}
|
||||
FunctionEnd"
|
||||
)
|
||||
|
||||
set (CPACK_NSIS_EXTRA_INIT_COMMANDS "
|
||||
; initial value of $INSATLL_KVASD chack box
|
||||
IntOp $INSTALL_KVASD 0 + \${BST_CHECKED}"
|
||||
)
|
||||
|
||||
set (CPACK_NSIS_EXTRA_PAGES "
|
||||
; custom page for KVASD license display and acceptance
|
||||
Page custom KVASD_page_create KVASD_page_leave"
|
||||
)
|
||||
|
||||
set (CPACK_NSIS_EXTRA_INSTALL_OPTIONS "
|
||||
; add a chackbox for installing KVASD
|
||||
\${NSD_CreateCheckBox} 0u 110u 100% 10u 'Install the optional KVASD decoder'
|
||||
Pop $CB_INSTALL_KVASD
|
||||
\${NSD_SetState} $CB_INSTALL_KVASD $INSTALL_KVASD"
|
||||
)
|
||||
|
||||
set (CPACK_NSIS_EXTRA_INSTALL_OPTIONS_READ "
|
||||
\${NSD_GetState} $CB_INSTALL_KVASD $INSTALL_KVASD"
|
||||
)
|
||||
|
||||
set (CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "
|
||||
\${If} $INSTALL_KVASD = \${BST_CHECKED}
|
||||
;
|
||||
; fetch KVASD license
|
||||
;
|
||||
StrCpy $5 @PROJECT_KVASD_URL@/@SYSTEM_NAME@/kvasd@CMAKE_EXECUTABLE_SUFFIX@
|
||||
GetTempFileName $1
|
||||
retry:
|
||||
NSISdl::download /TIMEOUT=30000 $5.md5 $1
|
||||
Pop $R0
|
||||
\${If} $R0 != success
|
||||
MessageBox MB_RETRYCANCEL|MB_ICONQUESTION 'Download: $5.md5$\\nFailed: $R0' IDRETRY retry
|
||||
Abort
|
||||
\${EndIf}
|
||||
ClearErrors
|
||||
FileOpen $2 $1 r
|
||||
\${If} \${Errors}
|
||||
MessageBox MB_RETRYCANCEL|MB_ICONQUESTION 'Failed to read MD5 hash file: $5.md5' IDRETRY retry
|
||||
Abort
|
||||
\${EndIf}
|
||||
|
||||
; extract MD5 hash
|
||||
FileRead $2 $3 32
|
||||
FileClose $2
|
||||
|
||||
;
|
||||
; fetch kvasd executable
|
||||
;
|
||||
GetTempFileName $KVASD_EXECUTABLE
|
||||
NSISdl::download /TIMEOUT=30000 $5 $KVASD_EXECUTABLE
|
||||
Pop $R0
|
||||
\${If} $R0 != success
|
||||
MessageBox MB_RETRYCANCEL|MB_ICONQUESTION 'Download: $5$\\nFailed: $R0' IDRETRY retry
|
||||
Abort
|
||||
\${EndIf}
|
||||
|
||||
; calculate MD5 hash
|
||||
md5dll::GetMD5File $KVASD_EXECUTABLE
|
||||
Pop $0
|
||||
|
||||
\${If} $3 != $0
|
||||
MessageBox MB_RETRYCANCEL|MB_ICONQUESTION 'MD5 hash check failed on: $5$\\nExpected: [$4]$\\n Actual: [$0]' IDRETRY retry
|
||||
Abort
|
||||
\${EndIf}
|
||||
|
||||
skip_kvasd:
|
||||
Delete $1 ; MD5 hash file
|
||||
\${EndIf}
|
||||
|
||||
; save $INSTALL_KVASD to registry for use in teh un-installer
|
||||
WriteRegDWORD SHCTX 'Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${CPACK_PACKAGE_INSTALL_REGISTRY_KEY}' \\
|
||||
'InstallKvasd' $INSTALL_KVASD"
|
||||
)
|
||||
|
||||
set (CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
|
||||
; install the kvasd executable and ensure it can be executed
|
||||
\${If} $INSTALL_KVASD = \${BST_CHECKED}
|
||||
\${AndIf} \${FileExists} $KVASD_EXECUTABLE
|
||||
DetailPrint 'Installing: $INSTDIR\\@WSJT_BIN_DESTINATION@\\kvasd@CMAKE_EXECUTABLE_SUFFIX@'
|
||||
Rename $KVASD_EXECUTABLE '$INSTDIR\\@WSJT_BIN_DESTINATION@\\kvasd@CMAKE_EXECUTABLE_SUFFIX@'
|
||||
AccessControl::ClearOnFile '$INSTDIR\\@WSJT_BIN_DESTINATION@\\kvasd@CMAKE_EXECUTABLE_SUFFIX@' '(BU)' 'GenericRead + GenericExecute'
|
||||
Pop $R0
|
||||
\${If} $R0 != ok
|
||||
Pop $R0
|
||||
MessageBox MB_OK 'Failed to set KVASD file permissions.\\n$R0'
|
||||
Abort
|
||||
\${EndIf}
|
||||
\${EndIf}"
|
||||
)
|
||||
|
||||
set (CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
|
||||
; fetch $INSTALL_KVASD from registry
|
||||
ReadRegDWORD $INSTALL_KVASD SHCTX \\
|
||||
'Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${CPACK_PACKAGE_INSTALL_REGISTRY_KEY}' 'InstallKvasd'
|
||||
|
||||
; conditionally un-install the kvasd executable
|
||||
\${If} $INSTALL_KVASD = \${BST_CHECKED}
|
||||
Delete '$INSTDIR\\@WSJT_BIN_DESTINATION@\\kvasd@CMAKE_EXECUTABLE_SUFFIX@'
|
||||
\${EndIf}"
|
||||
)
|
||||
endif ()
|
||||
|
||||
if ("${CPACK_GENERATOR}" STREQUAL "PackageMaker")
|
||||
|
@ -79,7 +79,6 @@ set (PROJECT_DESCRIPTION "${PROJECT_SUMMARY_DESCRIPTION}
|
||||
standard SSB-width IF filters, switching between JT65 and JT9 modes
|
||||
is quick and convenient. Be sure to read the online ${PROJECT_NAME} User's
|
||||
Guide.")
|
||||
set (PROJECT_KVASD_URL http://svn.code.sf.net/p/wsjt/wsjt/trunk/kvasd-binary)
|
||||
|
||||
set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake/Modules ${CMAKE_MODULE_PATH})
|
||||
|
||||
@ -128,12 +127,6 @@ If you just want to see the debug output from the application then the easiest w
|
||||
attach a debugger which will then receive the console output inside its console." ON
|
||||
"WIN32" OFF)
|
||||
|
||||
#
|
||||
# decide if we are bundling kvasd (non-FOSS)
|
||||
#
|
||||
CMAKE_DEPENDENT_OPTION (WSJT_INCLUDE_KVASD "Include kvasd in the package." OFF
|
||||
"NOT is_debug_build" ON)
|
||||
|
||||
|
||||
set (PROJECT_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}")
|
||||
if (NOT PROJECT_ARCHITECTURE)
|
||||
@ -979,24 +972,6 @@ if (WSJT_CREATE_WINMAIN)
|
||||
set_target_properties (message_aggregator PROPERTIES WIN32_EXECUTABLE ON)
|
||||
endif (WSJT_CREATE_WINMAIN)
|
||||
|
||||
set (SYSTEM_NAME ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR})
|
||||
if (WIN32)
|
||||
set (SYSTEM_NAME "${SYSTEM_NAME}i386")
|
||||
endif (WIN32)
|
||||
if (WSJT_INCLUDE_KVASD)
|
||||
#
|
||||
# fetch and validate kvasd
|
||||
#
|
||||
set (KVASD_BINARY contrib/kvasd${CMAKE_EXECUTABLE_SUFFIX})
|
||||
|
||||
add_custom_target (kvasd ALL
|
||||
${CMAKE_COMMAND} -D SYSTEM_NAME=${SYSTEM_NAME} -D EXECUTABLE_SUFFIX=${CMAKE_EXECUTABLE_SUFFIX} -D URL=${PROJECT_KVASD_URL} -P ${CMAKE_SOURCE_DIR}/CMake/download_kvasd.cmake
|
||||
COMMENT "Downloading kvasd for ${SYSTEM_NAME}"
|
||||
VERBATIM
|
||||
)
|
||||
endif (WSJT_INCLUDE_KVASD)
|
||||
|
||||
|
||||
if (UNIX)
|
||||
if (NOT WSJT_SKIP_MANPAGES)
|
||||
add_subdirectory (manpages)
|
||||
@ -1021,21 +996,6 @@ install (TARGETS jt9 jt65code jt9code jt4code wsprd message_aggregator
|
||||
BUNDLE DESTINATION ${WSJT_BIN_DESTINATION} COMPONENT runtime
|
||||
)
|
||||
|
||||
if (WSJT_INCLUDE_KVASD)
|
||||
install (PROGRAMS
|
||||
${CMAKE_BINARY_DIR}/${KVASD_BINARY}
|
||||
DESTINATION ${WSJT_BIN_DESTINATION} COMPONENT runtime
|
||||
)
|
||||
else (WSJT_INCLUDE_KVASD)
|
||||
if (APPLE)
|
||||
install (DIRECTORY contrib/Darwin/KVASD-installer.app
|
||||
DESTINATION .
|
||||
USE_SOURCE_PERMISSIONS
|
||||
#COMPONENT Runtime
|
||||
)
|
||||
endif (APPLE)
|
||||
endif (WSJT_INCLUDE_KVASD)
|
||||
|
||||
install (PROGRAMS
|
||||
${RIGCTL_EXE}
|
||||
DESTINATION ${WSJT_BIN_DESTINATION}
|
||||
|
@ -1,306 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
A924153F1A2143F400B34EFA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A924153E1A2143F400B34EFA /* Cocoa.framework */; };
|
||||
A92415411A2143F400B34EFA /* AppleScriptObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92415401A2143F400B34EFA /* AppleScriptObjC.framework */; };
|
||||
A924154D1A2143F400B34EFA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A924154C1A2143F400B34EFA /* main.m */; };
|
||||
A92415531A2143F400B34EFA /* WSJTAppDelegate.applescript in Sources */ = {isa = PBXBuildFile; fileRef = A92415521A2143F400B34EFA /* WSJTAppDelegate.applescript */; };
|
||||
A92415581A2143F400B34EFA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A92415571A2143F400B34EFA /* Images.xcassets */; };
|
||||
A99DD3EC1A267FF900951324 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A99DD3EB1A267FF900951324 /* InfoPlist.strings */; };
|
||||
A99DD3EE1A26801100951324 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = A99DD3ED1A26801100951324 /* Credits.rtf */; };
|
||||
A99DD3F01A26801D00951324 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = A99DD3EF1A26801D00951324 /* MainMenu.xib */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
A924153B1A2143F400B34EFA /* KVASD-installer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "KVASD-installer.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
A924153E1A2143F400B34EFA /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
|
||||
A92415401A2143F400B34EFA /* AppleScriptObjC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppleScriptObjC.framework; path = System/Library/Frameworks/AppleScriptObjC.framework; sourceTree = SDKROOT; };
|
||||
A92415431A2143F400B34EFA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
|
||||
A92415441A2143F400B34EFA /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
|
||||
A92415451A2143F400B34EFA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
A92415481A2143F400B34EFA /* KVASD-installer-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "KVASD-installer-Info.plist"; sourceTree = "<group>"; };
|
||||
A924154C1A2143F400B34EFA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
A924154E1A2143F400B34EFA /* KVASD-installer-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "KVASD-installer-Prefix.pch"; sourceTree = "<group>"; };
|
||||
A92415521A2143F400B34EFA /* WSJTAppDelegate.applescript */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.applescript; path = WSJTAppDelegate.applescript; sourceTree = "<group>"; };
|
||||
A92415571A2143F400B34EFA /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
A99DD3EB1A267FF900951324 /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = InfoPlist.strings; sourceTree = "<group>"; };
|
||||
A99DD3ED1A26801100951324 /* Credits.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = "<group>"; };
|
||||
A99DD3EF1A26801D00951324 /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
A92415381A2143F400B34EFA /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
A92415411A2143F400B34EFA /* AppleScriptObjC.framework in Frameworks */,
|
||||
A924153F1A2143F400B34EFA /* Cocoa.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
A92415321A2143F400B34EFA = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A92415461A2143F400B34EFA /* KVASD-installer */,
|
||||
A924153D1A2143F400B34EFA /* Frameworks */,
|
||||
A924153C1A2143F400B34EFA /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A924153C1A2143F400B34EFA /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A924153B1A2143F400B34EFA /* KVASD-installer.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A924153D1A2143F400B34EFA /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A924153E1A2143F400B34EFA /* Cocoa.framework */,
|
||||
A92415401A2143F400B34EFA /* AppleScriptObjC.framework */,
|
||||
A92415421A2143F400B34EFA /* Other Frameworks */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A92415421A2143F400B34EFA /* Other Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A92415431A2143F400B34EFA /* AppKit.framework */,
|
||||
A92415441A2143F400B34EFA /* CoreData.framework */,
|
||||
A92415451A2143F400B34EFA /* Foundation.framework */,
|
||||
);
|
||||
name = "Other Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A92415461A2143F400B34EFA /* KVASD-installer */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A92415521A2143F400B34EFA /* WSJTAppDelegate.applescript */,
|
||||
A99DD3EF1A26801D00951324 /* MainMenu.xib */,
|
||||
A92415571A2143F400B34EFA /* Images.xcassets */,
|
||||
A92415471A2143F400B34EFA /* Supporting Files */,
|
||||
);
|
||||
path = "KVASD-installer";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A92415471A2143F400B34EFA /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A92415481A2143F400B34EFA /* KVASD-installer-Info.plist */,
|
||||
A99DD3ED1A26801100951324 /* Credits.rtf */,
|
||||
A99DD3EB1A267FF900951324 /* InfoPlist.strings */,
|
||||
A924154C1A2143F400B34EFA /* main.m */,
|
||||
A924154E1A2143F400B34EFA /* KVASD-installer-Prefix.pch */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
A924153A1A2143F400B34EFA /* KVASD-installer */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = A924155B1A2143F400B34EFA /* Build configuration list for PBXNativeTarget "KVASD-installer" */;
|
||||
buildPhases = (
|
||||
A92415371A2143F400B34EFA /* Sources */,
|
||||
A92415381A2143F400B34EFA /* Frameworks */,
|
||||
A92415391A2143F400B34EFA /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = "KVASD-installer";
|
||||
productName = "KVASD-installer";
|
||||
productReference = A924153B1A2143F400B34EFA /* KVASD-installer.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
A92415331A2143F400B34EFA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
CLASSPREFIX = WSJT;
|
||||
LastUpgradeCheck = 0500;
|
||||
ORGANIZATIONNAME = WSJT;
|
||||
};
|
||||
buildConfigurationList = A92415361A2143F400B34EFA /* Build configuration list for PBXProject "KVASD-installer" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
mainGroup = A92415321A2143F400B34EFA;
|
||||
productRefGroup = A924153C1A2143F400B34EFA /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
A924153A1A2143F400B34EFA /* KVASD-installer */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
A92415391A2143F400B34EFA /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
A99DD3EC1A267FF900951324 /* InfoPlist.strings in Resources */,
|
||||
A99DD3EE1A26801100951324 /* Credits.rtf in Resources */,
|
||||
A92415581A2143F400B34EFA /* Images.xcassets in Resources */,
|
||||
A99DD3F01A26801D00951324 /* MainMenu.xib in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
A92415371A2143F400B34EFA /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
A92415531A2143F400B34EFA /* WSJTAppDelegate.applescript in Sources */,
|
||||
A924154D1A2143F400B34EFA /* main.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
A92415591A2143F400B34EFA /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
A924155A1A2143F400B34EFA /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
A924155C1A2143F400B34EFA /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "KVASD-installer/KVASD-installer-Prefix.pch";
|
||||
INFOPLIST_FILE = "KVASD-installer/KVASD-installer-Info.plist";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
A924155D1A2143F400B34EFA /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "KVASD-installer/KVASD-installer-Prefix.pch";
|
||||
INFOPLIST_FILE = "KVASD-installer/KVASD-installer-Info.plist";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
A92415361A2143F400B34EFA /* Build configuration list for PBXProject "KVASD-installer" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
A92415591A2143F400B34EFA /* Debug */,
|
||||
A924155A1A2143F400B34EFA /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
A924155B1A2143F400B34EFA /* Build configuration list for PBXNativeTarget "KVASD-installer" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
A924155C1A2143F400B34EFA /* Debug */,
|
||||
A924155D1A2143F400B34EFA /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = A92415331A2143F400B34EFA /* Project object */;
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:KVASD-installer.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
@ -1,30 +0,0 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
|
||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\paperw11900\paperh16840\vieww9600\viewh8400\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
||||
|
||||
\f0\b\fs24 \cf0 Engineering:
|
||||
\b0 \
|
||||
G4WJS - Bill Somerville\
|
||||
\
|
||||
|
||||
\b Human Interface Design:
|
||||
\b0 \
|
||||
G4WJS - Bill Somerville\
|
||||
\
|
||||
|
||||
\b Testing:
|
||||
\b0 \
|
||||
G4WJS - Bill Somerville\
|
||||
\
|
||||
|
||||
\b Documentation:
|
||||
\b0 \
|
||||
G4WJS - Bill Somerville\
|
||||
\
|
||||
|
||||
\b With special thanks to:
|
||||
\b0 \
|
||||
No one in particular.\
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"size" : "16x16",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_16x16.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "16x16",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_16x16@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "32x32",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_32x32.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "32x32",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_32x32@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "128x128",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_128x128.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "128x128",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_128x128@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "256x256",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_256x256.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "256x256",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_256x256@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "512x512",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_512x512.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "512x512",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon_512x512@2x.png",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
Binary file not shown.
Before ![]() (image error) Size: 10 KiB |
Binary file not shown.
Before ![]() (image error) Size: 28 KiB |
Binary file not shown.
Before ![]() (image error) Size: 1.1 KiB |
Binary file not shown.
Before ![]() (image error) Size: 2.4 KiB |
Binary file not shown.
Before ![]() (image error) Size: 28 KiB |
Binary file not shown.
Before ![]() (image error) Size: 70 KiB |
Binary file not shown.
Before ![]() (image error) Size: 2.4 KiB |
Binary file not shown.
Before ![]() (image error) Size: 5.7 KiB |
Binary file not shown.
Before ![]() (image error) Size: 70 KiB |
Binary file not shown.
Before ![]() (image error) Size: 177 KiB |
@ -1,2 +0,0 @@
|
||||
/* Localized versions of Info.plist keys */
|
||||
|
@ -1,51 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>com.apple.application-bundle</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.k1jt.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Created by Bill Somerville (G4WJS) on 12/11/2014.
|
||||
|
||||
The author of this work hereby waives all claim of copyright (economic and moral)
|
||||
in this work and immediately places it in the public domain; it may be used, distorted
|
||||
or destroyed in any manner whatsoever without further attribution or notice to the creator.</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,9 +0,0 @@
|
||||
//
|
||||
// Prefix header
|
||||
//
|
||||
// The contents of this file are implicitly included at the beginning of every source file.
|
||||
//
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#endif
|
@ -1,290 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="12F45" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment version="1070" defaultVersion="1070" identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
|
||||
<connections>
|
||||
<outlet property="delegate" destination="494" id="495"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application">
|
||||
<connections>
|
||||
<outlet property="delegate" destination="494" id="B9w-iE-h6m"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<menu title="AMainMenu" systemMenu="main" id="29" userLabel="MainMenu">
|
||||
<items>
|
||||
<menuItem title="KVASD-installer" id="56">
|
||||
<menu key="submenu" title="KVASD-installer" systemMenu="apple" id="57">
|
||||
<items>
|
||||
<menuItem title="About KVASD-installer" id="58">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="doAbout:" target="494" id="u46-Dy-iCH"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="236">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Preferences…" keyEquivalent="," id="129" userLabel="121"/>
|
||||
<menuItem isSeparatorItem="YES" id="143">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Services" id="131">
|
||||
<menu key="submenu" title="Services" systemMenu="services" id="130"/>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="144">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Hide KVASD-installer" keyEquivalent="h" id="134">
|
||||
<connections>
|
||||
<action selector="hide:" target="-1" id="367"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Hide Others" keyEquivalent="h" id="145">
|
||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="hideOtherApplications:" target="-1" id="368"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Show All" id="150">
|
||||
<connections>
|
||||
<action selector="unhideAllApplications:" target="-1" id="370"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="149">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Quit KVASD-installer" keyEquivalent="q" id="136" userLabel="1111">
|
||||
<connections>
|
||||
<action selector="performClose:" target="371" id="cEn-Uc-6XC"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Window" id="19">
|
||||
<menu key="submenu" title="Window" systemMenu="window" id="24">
|
||||
<items>
|
||||
<menuItem title="Minimize" keyEquivalent="m" id="23">
|
||||
<connections>
|
||||
<action selector="performMiniaturize:" target="-1" id="37"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Zoom" id="239">
|
||||
<connections>
|
||||
<action selector="performZoom:" target="-1" id="240"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="92">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Bring All to Front" id="5">
|
||||
<connections>
|
||||
<action selector="arrangeInFront:" target="-1" id="39"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Help" id="490">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Help" systemMenu="help" id="491">
|
||||
<items>
|
||||
<menuItem title="KVASD-installer Help" keyEquivalent="?" id="492">
|
||||
<connections>
|
||||
<action selector="showHelp:" target="-1" id="493"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
<window title="KVASD-installer" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="371">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="80" y="390" width="496" height="492"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1058"/>
|
||||
<value key="minSize" type="size" width="524" height="564"/>
|
||||
<view key="contentView" id="372">
|
||||
<rect key="frame" x="0.0" y="0.0" width="496" height="492"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button toolTip="Invoke a file chooser dialog to pick a WSJT-X application bundle to install KVASD into." verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zDT-OA-GKH">
|
||||
<rect key="frame" x="20" y="63" width="113" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="squareTextured" title="Choose target ..." bezelStyle="texturedSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="wka-Od-w4K">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="doChooseTarget:" target="494" id="T3v-Fi-ceL"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button toolTip="Click to process all the WSJT-X application bundles you have selected." verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WgE-a2-qYH">
|
||||
<rect key="frame" x="430" y="63" width="46" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="squareTextured" title="Install" bezelStyle="texturedSquare" imagePosition="overlaps" alignment="center" enabled="NO" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Wul-Wc-vif">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="doInstall:" target="494" id="tMW-3E-gQh"/>
|
||||
</connections>
|
||||
</button>
|
||||
<progressIndicator maxValue="100" displayedWhenStopped="NO" indeterminate="YES" style="bar" translatesAutoresizingMaskIntoConstraints="NO" id="C3t-a8-lOf">
|
||||
<rect key="frame" x="20" y="157" width="456" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
</progressIndicator>
|
||||
<scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FDk-OM-v7f">
|
||||
<rect key="frame" x="20" y="184" width="456" height="288"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<string key="toolTip">Please read the agreement and tick the "Agree" checkbox below if you accept the terms and wish to continue with the installation.</string>
|
||||
<clipView key="contentView" id="hfA-a7-tlo">
|
||||
<rect key="frame" x="1" y="1" width="439" height="286"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textView importsGraphics="NO" findStyle="panel" continuousSpellChecking="YES" allowsUndo="YES" usesRuler="YES" usesFontPanel="YES" verticallyResizable="YES" allowsNonContiguousLayout="YES" quoteSubstitution="YES" dashSubstitution="YES" spellingCorrection="YES" smartInsertDelete="YES" id="7ov-Rl-J8r">
|
||||
<rect key="frame" x="0.0" y="0.0" width="439" height="286"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="minSize" width="439" height="286"/>
|
||||
<size key="maxSize" width="648" height="10000000"/>
|
||||
<color key="insertionPointColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="minSize" width="439" height="286"/>
|
||||
<size key="maxSize" width="648" height="10000000"/>
|
||||
</textView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="YES" id="U59-MZ-pYE">
|
||||
<rect key="frame" x="-100" y="-100" width="87" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" verticalHuggingPriority="750" horizontal="NO" id="yPp-8r-Jdr">
|
||||
<rect key="frame" x="440" y="1" width="15" height="286"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
</scrollView>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Ykk-0Z-lxG">
|
||||
<rect key="frame" x="17" y="20" width="462" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="37" id="hQV-aJ-MXM"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="center" title="Use "Choose target ..." to pick WSJT-X application bundles to install KVASD into" id="3OK-wt-WuN">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<box autoresizesSubviews="NO" title="License" borderType="line" translatesAutoresizingMaskIntoConstraints="NO" id="wa1-Gy-wEE">
|
||||
<rect key="frame" x="17" y="91" width="462" height="59"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<view key="contentView">
|
||||
<rect key="frame" x="1" y="1" width="460" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="750" tag="-1" translatesAutoresizingMaskIntoConstraints="NO" id="zHE-FK-uha">
|
||||
<rect key="frame" x="12" y="5" width="102" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="90" id="93n-sN-xbH"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="push" title="Save ..." bezelStyle="rounded" alignment="center" enabled="NO" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="qaP-zQ-Ead">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<connections>
|
||||
<action selector="doSave:" target="494" id="KPT-pj-YyW"/>
|
||||
</connections>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" tag="-1" translatesAutoresizingMaskIntoConstraints="NO" id="ylZ-OO-wid">
|
||||
<rect key="frame" x="179" y="5" width="102" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="90" id="x77-Gu-2d1"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="push" title="Print ..." bezelStyle="rounded" alignment="center" enabled="NO" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="2cB-RL-2Da">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="doPrint:" target="494" id="879-hA-tbm"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button tag="-1" translatesAutoresizingMaskIntoConstraints="NO" id="art-4p-gjI">
|
||||
<rect key="frame" x="347" y="-1" width="102" height="47"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="98" id="tcI-KQ-cBc"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="check" title="Agree" bezelStyle="regularSquare" imagePosition="left" enabled="NO" inset="2" id="NP4-SZ-zup">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<connections>
|
||||
<action selector="doAgree:" target="494" id="AEf-cK-aSu"/>
|
||||
</connections>
|
||||
</buttonCell>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<constraints>
|
||||
<constraint firstItem="art-4p-gjI" firstAttribute="top" secondItem="wa1-Gy-wEE" secondAttribute="top" constant="14" id="0zn-cU-8Qd"/>
|
||||
<constraint firstItem="ylZ-OO-wid" firstAttribute="centerY" secondItem="art-4p-gjI" secondAttribute="centerY" id="P4Z-tf-K7i"/>
|
||||
<constraint firstAttribute="trailing" secondItem="art-4p-gjI" secondAttribute="trailing" constant="11" id="PaV-Cy-yPe"/>
|
||||
<constraint firstItem="zHE-FK-uha" firstAttribute="top" secondItem="wa1-Gy-wEE" secondAttribute="top" constant="25" id="Vbl-9p-bwR"/>
|
||||
<constraint firstItem="zHE-FK-uha" firstAttribute="leading" secondItem="wa1-Gy-wEE" secondAttribute="leading" constant="16" id="gSc-ts-7Qh"/>
|
||||
<constraint firstItem="ylZ-OO-wid" firstAttribute="centerX" secondItem="wa1-Gy-wEE" secondAttribute="centerX" id="hzs-Tk-cqg"/>
|
||||
<constraint firstItem="ylZ-OO-wid" firstAttribute="baseline" secondItem="zHE-FK-uha" secondAttribute="baseline" id="jka-sT-Thn"/>
|
||||
<constraint firstAttribute="bottom" secondItem="art-4p-gjI" secondAttribute="bottom" constant="-2" id="oKe-JP-bfb"/>
|
||||
</constraints>
|
||||
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</box>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="C3t-a8-lOf" firstAttribute="trailing" secondItem="FDk-OM-v7f" secondAttribute="trailing" id="4DP-Kp-1q2"/>
|
||||
<constraint firstItem="zDT-OA-GKH" firstAttribute="top" secondItem="wa1-Gy-wEE" secondAttribute="bottom" constant="8" symbolic="YES" id="ML8-yC-89i"/>
|
||||
<constraint firstItem="FDk-OM-v7f" firstAttribute="leading" secondItem="372" secondAttribute="leading" constant="20" symbolic="YES" id="NMg-Ck-obh"/>
|
||||
<constraint firstItem="zDT-OA-GKH" firstAttribute="leading" secondItem="wa1-Gy-wEE" secondAttribute="leading" id="T51-Uf-1WE"/>
|
||||
<constraint firstItem="wa1-Gy-wEE" firstAttribute="leading" secondItem="C3t-a8-lOf" secondAttribute="leading" id="TGy-7g-zAJ"/>
|
||||
<constraint firstItem="Ykk-0Z-lxG" firstAttribute="leading" secondItem="zDT-OA-GKH" secondAttribute="leading" id="bbq-7t-f68"/>
|
||||
<constraint firstItem="C3t-a8-lOf" firstAttribute="trailing" secondItem="wa1-Gy-wEE" secondAttribute="trailing" id="d1F-PM-eaa"/>
|
||||
<constraint firstItem="FDk-OM-v7f" firstAttribute="top" secondItem="372" secondAttribute="top" constant="20" symbolic="YES" id="kJJ-dt-NRz"/>
|
||||
<constraint firstItem="C3t-a8-lOf" firstAttribute="leading" secondItem="FDk-OM-v7f" secondAttribute="leading" id="kgo-AY-mzZ"/>
|
||||
<constraint firstItem="Ykk-0Z-lxG" firstAttribute="top" secondItem="zDT-OA-GKH" secondAttribute="bottom" constant="8" symbolic="YES" id="lnw-0d-qNt"/>
|
||||
<constraint firstItem="zDT-OA-GKH" firstAttribute="baseline" secondItem="WgE-a2-qYH" secondAttribute="baseline" id="ohE-qi-Dfp"/>
|
||||
<constraint firstItem="Ykk-0Z-lxG" firstAttribute="trailing" secondItem="WgE-a2-qYH" secondAttribute="trailing" id="p2f-9z-tE5"/>
|
||||
<constraint firstItem="C3t-a8-lOf" firstAttribute="top" secondItem="FDk-OM-v7f" secondAttribute="bottom" constant="8" symbolic="YES" id="qZp-QK-6Gr"/>
|
||||
<constraint firstAttribute="trailing" secondItem="FDk-OM-v7f" secondAttribute="trailing" constant="20" symbolic="YES" id="rjX-vJ-uNw"/>
|
||||
<constraint firstItem="wa1-Gy-wEE" firstAttribute="top" secondItem="C3t-a8-lOf" secondAttribute="bottom" constant="8" symbolic="YES" id="rjt-GZ-jeN"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Ykk-0Z-lxG" secondAttribute="bottom" constant="20" symbolic="YES" id="vBM-jI-CPn"/>
|
||||
<constraint firstItem="wa1-Gy-wEE" firstAttribute="trailing" secondItem="WgE-a2-qYH" secondAttribute="trailing" id="wYS-jM-6G3"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="494" id="E9E-qr-Qke"/>
|
||||
</connections>
|
||||
</window>
|
||||
<customObject id="494" customClass="WSJTAppDelegate">
|
||||
<connections>
|
||||
<outlet property="agreeCheckBox" destination="NP4-SZ-zup" id="BvB-Ac-MFu"/>
|
||||
<outlet property="chooseTargetButton" destination="zDT-OA-GKH" id="q8b-d7-xok"/>
|
||||
<outlet property="eulaTextView" destination="7ov-Rl-J8r" id="986-TU-OO8"/>
|
||||
<outlet property="installButton" destination="WgE-a2-qYH" id="0yv-Eu-yHW"/>
|
||||
<outlet property="licenceBox" destination="wa1-Gy-wEE" id="eR5-0y-iYi"/>
|
||||
<outlet property="mainWindow" destination="371" id="JZA-eM-kJw"/>
|
||||
<outlet property="printButton" destination="ylZ-OO-wid" id="Nf6-fU-NSK"/>
|
||||
<outlet property="progressBar" destination="C3t-a8-lOf" id="ioI-hZ-ytR"/>
|
||||
<outlet property="saveButton" destination="zHE-FK-uha" id="FMI-0f-Pat"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="420" customClass="NSFontManager"/>
|
||||
</objects>
|
||||
</document>
|
@ -1,357 +0,0 @@
|
||||
--
|
||||
-- WSJTAppDelegate.applescript
|
||||
-- KVASD-installer
|
||||
--
|
||||
-- This script is a drag and drop target that expects a WSJT-X app bundle path.
|
||||
-- It can also be opened with a file list or by dropping a suitable WSJT-X app
|
||||
-- bundle onto it. Alternatively a target WSJT-X application bundle may be
|
||||
-- selected by clicking the "Choose target ..." button.
|
||||
--
|
||||
-- It fetches the KVASD EULA text and displays it in a dialog which the reader
|
||||
-- must at least scroll to the end before clicking the Agree button which then
|
||||
-- downloads the appropriate KVASD executable. The MD5 hash checksum is checked
|
||||
-- on the KVASD executable.
|
||||
--
|
||||
-- Once the EULA has been accepted the "Install" button is enabled to install
|
||||
-- the KVASD executable into the target WSJT-X application bundle(s) and the
|
||||
-- RPATHs are modified to reference the libgcc support libraries inside the
|
||||
-- WSJT-X application bundle.
|
||||
--
|
||||
-- Created by Bill Somerville (G4WJS) on 12/11/2014.
|
||||
--
|
||||
-- The author of this work hereby waives all claim of copyright (economic and moral)
|
||||
-- in this work and immediately places it in the public domain; it may be used, distorted
|
||||
-- or destroyed in any manner whatsoever without further attribution or notice to the creator.
|
||||
--
|
||||
|
||||
-- curl wraps cURL to download files
|
||||
script curl
|
||||
on download(|url|, fileName, destination)
|
||||
set |file| to destination & fileName
|
||||
try
|
||||
do shell script "curl --fail --retry 5 --silent --show-error --output " & |file| & " " & |url| & fileName
|
||||
on error errorString
|
||||
error "An error occurred downloading:" & return & |url| & fileName & return & return & errorString
|
||||
end try
|
||||
return |file| as POSIX file
|
||||
end download
|
||||
|
||||
on downloadMD5(|url|, fileName)
|
||||
set md5Ext to ".md5"
|
||||
try
|
||||
return do shell script "curl --fail --retry 5 --silent " & |url| & fileName & md5Ext ¬
|
||||
& " | awk '{match($0,\"[[:xdigit:]]{32}\"); print substr($0,RSTART,RLENGTH)}'"
|
||||
on error errorString
|
||||
error "An error occurred downloading" & return & return & fileName & md5Ext & return & return & errorString
|
||||
end try
|
||||
end downloadMD5
|
||||
end script
|
||||
|
||||
-- kvasd looks after fetching kvasd files from the web source
|
||||
script kvasd
|
||||
property serverPath : "https://svn.code.sf.net/p/wsjt/wsjt/trunk/kvasd-binary/"
|
||||
property targetName : "kvasd"
|
||||
|
||||
on destination()
|
||||
return system attribute "TMPDIR"
|
||||
end destination
|
||||
|
||||
on fetchEULA()
|
||||
return curl's download(serverPath,targetName & "_eula.txt",my destination())
|
||||
end fetchEULA
|
||||
|
||||
on fetchBinary()
|
||||
set |url| to serverPath & do shell script "echo `uname -s`-`uname -m`" & "/"
|
||||
set md5Sum to curl's downloadMD5(|url|,targetName)
|
||||
set |file| to curl's download(|url|,targetName,my destination())
|
||||
set md5Calc to do shell script "md5 " & (POSIX path of |file|) & " | cut -d' ' -f4"
|
||||
if md5Calc ≠ md5Sum then
|
||||
error "KVASD download corrupt MD5 hash check" & return & return ¬
|
||||
& " expected [" & md5Sum & "]" & return ¬
|
||||
& " actual [" & md5Calc & "]" ¬
|
||||
number 500
|
||||
end if
|
||||
end fetchBinary
|
||||
|
||||
on saveLicense()
|
||||
set dest to choose folder ¬
|
||||
with prompt "Specify folder to save license to" ¬
|
||||
default location (path to documents folder)
|
||||
tell application "Finder" to ¬
|
||||
duplicate (my destination() & targetName & "_eula.txt") as POSIX file to dest
|
||||
end saveLicense
|
||||
|
||||
on printLicense()
|
||||
tell application "Finder" to ¬
|
||||
print (my destination() & targetName & "_eula.txt") as POSIX file
|
||||
end printLicense
|
||||
|
||||
on cleanUp()
|
||||
tell application "Finder"
|
||||
if exists (my destination() & targetName & "_eula.txt") as POSIX file then
|
||||
delete (my destination() & targetName & "_eula.txt") as POSIX file
|
||||
end if
|
||||
if exists (my destination() & targetName) as POSIX file then
|
||||
delete (my destination() & targetName) as POSIX file
|
||||
end if
|
||||
end tell
|
||||
end cleanUp
|
||||
end script
|
||||
|
||||
script WSJTAppDelegate
|
||||
property parent : class "NSObject"
|
||||
|
||||
property mainWindow : missing value
|
||||
property eulaTextView : missing value
|
||||
property progressBar : missing value
|
||||
property saveButton : missing value
|
||||
property printButton : missing value
|
||||
property agreeCheckBox : missing value
|
||||
property chooseTargetButton : missing value
|
||||
property installButton : missing value
|
||||
|
||||
property bundlesToProcess : {}
|
||||
|
||||
global defaultNotificationCentre
|
||||
global licenceAgreed
|
||||
|
||||
on split(theText,theDelimiters)
|
||||
set oldDelimiters to AppleScript's text item delimiters
|
||||
set AppleScript's text item delimiters to theDelimiters
|
||||
set theResult to the text items of theText
|
||||
set AppleScript's text item delimiters to oldDelimiters
|
||||
return theResult
|
||||
end split
|
||||
|
||||
-- do the install
|
||||
on process()
|
||||
repeat with bundlePath in bundlesToProcess
|
||||
try
|
||||
set wsjtxBundle to current application's NSBundle's bundleWithPath_(bundlePath)
|
||||
if wsjtxBundle = missing value or wsjtxBundle's bundleIdentifier() as text ≠ "org.k1jt.wsjtx" then
|
||||
error "Not an appropriate WSJT-X application bundle: " & return & return ¬
|
||||
& bundlePath as text number 501
|
||||
end if
|
||||
set installRoot to wsjtxBundle's bundlePath() as text
|
||||
display dialog "Install KVASD into Aplication Bundle" & return & return ¬
|
||||
& installRoot ¬
|
||||
buttons {"Ok", "Skip"} default button {"Ok"}
|
||||
if button returned of result = "Ok" then
|
||||
try
|
||||
set target to installRoot & "/Contents/MacOS/" & kvasd's targetName
|
||||
do shell script "cp " & kvasd's destination() & kvasd's targetName & space & target
|
||||
do shell script "chmod +x " & target
|
||||
display alert "KVASD installed into application bundle:" & return & return & installRoot ¬
|
||||
buttons {"Ok"} default button "Ok" ¬
|
||||
giving up after 5
|
||||
on error errorString
|
||||
error "Failed to move KVASD into application bundle:" & return & return & installRoot ¬
|
||||
& return & return & "Error: " & errorString
|
||||
end try
|
||||
end if
|
||||
on error errorString
|
||||
display alert errorString as warning buttons {"Ok"} default button "Ok"
|
||||
end try
|
||||
end repeat
|
||||
end process
|
||||
|
||||
--
|
||||
-- NSApplicationDelegate Protocol
|
||||
--
|
||||
on applicationWillFinishLaunching_(aNotification)
|
||||
try
|
||||
-- mainWindow's registerForDraggedTypes_({"public.file-url"})
|
||||
|
||||
set defaultNotificationCentre to current application's NSNotificationCenter's defaultCenter()
|
||||
set licenceAgreed to false
|
||||
eulaTextView's setEditable_(false)
|
||||
|
||||
script downloadEula
|
||||
eulaTextView's setString_(read kvasd's fetchEULA())
|
||||
end script
|
||||
my doWithRetry(downloadEula)
|
||||
saveButton's setEnabled_(true)
|
||||
printButton's setEnabled_(true)
|
||||
|
||||
-- add observers for view port changes on EULA text view
|
||||
set boundsChangeNotice to current application's NSViewBoundsDidChangeNotification
|
||||
set frameChangeNotice to current application's NSViewFrameDidChangeNotification
|
||||
defaultNotificationCentre's addObserver_selector_name_object_(me,"viewChanged:",boundsChangeNotice,missing value)
|
||||
defaultNotificationCentre's addObserver_selector_name_object_(me,"viewChanged:",frameChangeNotice,missing value)
|
||||
on error errorString
|
||||
abort(errorString)
|
||||
end try
|
||||
end applicationWillFinishLaunching_
|
||||
|
||||
on applicationShouldTerminateAfterLastWindowClosed_(sender)
|
||||
return true
|
||||
end applicationShouldTerminateAfterLastWindowClosed_
|
||||
|
||||
on applicationWillTerminate_(sender)
|
||||
defaultNotificationCentre's removeObserver_(me)
|
||||
kvasd's cleanUp()
|
||||
end applicationWillTerminate_
|
||||
|
||||
--
|
||||
-- NSDraggingDestination (NSWindow Delgate) Protocol (Not working on 10.7)
|
||||
--
|
||||
|
||||
-- Accept Generic drag&drop sources
|
||||
-- on draggingEntered_(sender)
|
||||
-- return current application's NSDragOperationGeneric
|
||||
-- end draggingEntered_
|
||||
|
||||
-- Process a drop on our window
|
||||
-- on performDragOperation_(sender)
|
||||
-- try
|
||||
-- set pb to sender's draggingPasteboard()
|
||||
-- if pb's types() as list contains current application's NSURLPboardType then
|
||||
-- set options to {NSPasteboardURLReadingContentsConformToTypesKey:{"com.apple.application-bundle"}}
|
||||
-- repeat with u in pb's readObjectsForClasses_options_({current application's |NSURL|},options)
|
||||
-- copy u's |path| to end of bundlesToProcess
|
||||
-- end repeat
|
||||
-- if bundlesToProcess ≠ {} and licenceAgreed then
|
||||
-- installButton's setEnabled_(true)
|
||||
-- end if
|
||||
-- return true
|
||||
-- end if
|
||||
-- on error errorString
|
||||
-- abort(errorString)
|
||||
-- end try
|
||||
-- return false
|
||||
-- end performDragOperation_
|
||||
|
||||
--
|
||||
-- UI handlers
|
||||
--
|
||||
|
||||
-- Save EULA
|
||||
on doSave_(sender)
|
||||
try
|
||||
kvasd's saveLicense()
|
||||
on error errorString number errorNumber
|
||||
if errorNumber is equal to -128 then
|
||||
-- just ignore Cancel
|
||||
else
|
||||
abort(errorString)
|
||||
end if
|
||||
end try
|
||||
end doSave_
|
||||
|
||||
-- Save EULA
|
||||
on doPrint_(sender)
|
||||
try
|
||||
kvasd's printLicense()
|
||||
on error errorString number errorNumber
|
||||
if errorNumber is equal to -128 then
|
||||
-- just ignore Cancel
|
||||
else
|
||||
abort(errorString)
|
||||
end if
|
||||
end try
|
||||
end doPrint_
|
||||
|
||||
-- Agree Button handler
|
||||
on doAgree_(sender)
|
||||
if agreeCheckBox's state() as boolean then
|
||||
try
|
||||
script downloadKvasd
|
||||
kvasd's fetchBinary()
|
||||
end script
|
||||
my doWithRetry(downloadKvasd)
|
||||
on error errorString
|
||||
abort(errorString)
|
||||
end try
|
||||
agreeCheckBox's setEnabled_(false)
|
||||
set licenceAgreed to true
|
||||
if bundlesToProcess ≠ {} then
|
||||
installButton's setEnabled_(true)
|
||||
end if
|
||||
end if
|
||||
end doAgree_
|
||||
|
||||
-- Choose target button handler
|
||||
on doChooseTarget_(sender)
|
||||
try
|
||||
repeat with target in choose file ¬
|
||||
with prompt "Choose the WSJT-X application bundle you wish to install KVASD into" ¬
|
||||
of type "com.apple.application-bundle" ¬
|
||||
default location "/Applications" as POSIX file as alias ¬
|
||||
invisibles false ¬
|
||||
multiple selections allowed true
|
||||
copy POSIX path of target to end of bundlesToProcess
|
||||
end repeat
|
||||
if bundlesToProcess ≠ {} and licenceAgreed then
|
||||
installButton's setEnabled_(true)
|
||||
end if
|
||||
on error number -128
|
||||
-- just ignore Cancel
|
||||
end try
|
||||
end doChooseTarget_
|
||||
|
||||
-- Install button handler
|
||||
on doInstall_(sender)
|
||||
try
|
||||
process()
|
||||
set bundlesToProcess to {}
|
||||
installButton's setEnabled_(false)
|
||||
on error errorString
|
||||
abort(errorString)
|
||||
end try
|
||||
end doInstall_
|
||||
|
||||
-- handler called on eulaTextView scroll or view changes
|
||||
-- enables agree/install button once the bottom is reached
|
||||
on viewChanged_(aNotification)
|
||||
try
|
||||
set dr to eulaTextView's |bounds| as record
|
||||
set vdr to eulaTextView's visibleRect as record
|
||||
if height of |size| of dr - (y of origin of vdr + height of |size| of vdr) is less than or equal to 0 ¬
|
||||
and not licenceAgreed then
|
||||
agreeCheckBox's setEnabled_(true)
|
||||
end if
|
||||
on error errorString
|
||||
abort(errorString)
|
||||
end try
|
||||
end viewChanged
|
||||
|
||||
-- Do something with retries
|
||||
on doWithRetry(action)
|
||||
set done to false
|
||||
repeat until done
|
||||
try
|
||||
my progressAction(action)
|
||||
set done to true
|
||||
on error errorString
|
||||
set userCanceled to false
|
||||
try
|
||||
set dialogResult to display alert errorString as warning ¬
|
||||
buttons {"Cancel", "Retry"} default button "Retry" cancel button "Cancel"
|
||||
on error number -128
|
||||
set userCanceled to true
|
||||
end try
|
||||
if userCanceled then
|
||||
error "User canceled operation"
|
||||
end if
|
||||
end try
|
||||
end repeat
|
||||
end doWithRetry
|
||||
|
||||
-- execute around handler to display a progress bar during an action
|
||||
on progressAction(action)
|
||||
progressBar's startAnimation_(me)
|
||||
tell action to run
|
||||
progressBar's stopAnimation_(me)
|
||||
end progressAction
|
||||
|
||||
-- Abort handler
|
||||
on abort(errorString)
|
||||
display alert errorString as critical buttons {"Ok"} default button "Ok"
|
||||
quit
|
||||
end abort
|
||||
|
||||
-- About menu item
|
||||
on doAbout_(sender)
|
||||
display alert "KVASD-installer v1.0"
|
||||
end onAbout_
|
||||
end script
|
@ -1,17 +0,0 @@
|
||||
//
|
||||
// main.m
|
||||
// KVASD-installer
|
||||
//
|
||||
// Created by Bill Somerville (G4WJS) on 22/11/2014.
|
||||
// Copyright (c) 2014 WSJT. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
#import <AppleScriptObjC/AppleScriptObjC.h>
|
||||
|
||||
int main(int argc, const char * argv[])
|
||||
{
|
||||
[[NSBundle mainBundle] loadAppleScriptObjectiveCScripts];
|
||||
return NSApplicationMain(argc, argv);
|
||||
}
|
@ -49,18 +49,6 @@ NEXT:
|
||||
|
||||
Drag the WSJT-X app to your preferred location, such as Applications.
|
||||
|
||||
WSJT-X can utilise a closed source proprietary tool called KVASD to get the best
|
||||
possible sensitivity with JT65A signals. When used it increases the maximum sensitivity
|
||||
by approximately 2dB. Because WSJT-X is an Open Source application released under the
|
||||
GPL v3 license, the KVASD tool must be installed manually after WSJT-X installation.
|
||||
The install DMG includes an installer tool KVASD-installer that allows you to install
|
||||
KVASD into your WSJT-X application. When you run KVASD-installer you must have a
|
||||
functioning Internet connection since it downloads KVASD during the installation.
|
||||
|
||||
Run KVASD-installer and review the license terms then use the "Choose target ..." button
|
||||
to select the WSJT-X application you have just installed then; click "Install" to inject
|
||||
KVASD into the WSJT-X application.
|
||||
|
||||
You need to configure your sound card. Visit Applications > Utilities > Audio MIDI
|
||||
Setup and select your sound card and then set Format to be "48000Hz 2ch-16bit" for
|
||||
input and output.
|
||||
|
@ -1,24 +1,3 @@
|
||||
KVASD-installer
|
||||
===============
|
||||
This is a small AppleScriptObjbC Xcode project that is an application bundle GUI tool
|
||||
to install the KVASD tool into a WSJT-X application bundle. It fetches the KVASD EULA
|
||||
from the SourceForge web svn server and presents it to the user, the user may store
|
||||
license or print it. They must agree the license terms before the KVASD tool is also
|
||||
downloaded from the SourceForge web svn server. The user then can select the target
|
||||
WSJT-X application bundle for installation either via a file chooser dialog or simply
|
||||
by dragging the target WSJT-X application bundle onto the KVASD-installer window.
|
||||
Once selected the "Install" button starts the installation process. The installation
|
||||
copies the kvasd binary into the WSJT-X bundle and adjusts the dylib paths in it to
|
||||
point to the libgcc dylibs that are shipped inside the WSJT_X bundle.
|
||||
|
||||
KVASD-installer is not built as part of the WSJT-X project build, instead it must be
|
||||
built within Xcode and deployed into the source tree at the location 'contrib/Darwin'
|
||||
as a bare application bundle which is then checked into source control. The WSJT-X
|
||||
CMake build, when building a DragNDrop installer package for WSJT-X inserts the
|
||||
KVASD-installer application bundle into the root of the package DMG ready to be used
|
||||
after installing the main WSJT-X application bundle.
|
||||
|
||||
|
||||
Changing the content of the DragNDrop DMG root folder.
|
||||
======================================================
|
||||
|
||||
@ -40,7 +19,7 @@ The installer DMG is read only and shrunk to exactly the size of the contents, a
|
||||
The following recipe shows how to amend the content and layout of the DMG root folder:
|
||||
|
||||
# convert the DMG to a R/W copy (substitute the DMG you have built)
|
||||
hdiutil convert wsjtx-1.4.0-rc1-Darwin.dmg -format UDRW -o rw.dmg
|
||||
hdiutil convert wsjtx-1.7.0-rc1-Darwin.dmg -format UDRW -o rw.dmg
|
||||
|
||||
# expand the R/W copy to make room for changes
|
||||
# first find the current number of sectors
|
||||
@ -58,10 +37,10 @@ hdiutil resize -sectors 110000 rw.dmg
|
||||
hdiutil attach rw.dmg
|
||||
|
||||
# change the hidden attribute on the background PNG
|
||||
chflags nohidden /Volumes/wsjtx-1.4.0-rc1-Darwin/background.png
|
||||
chflags nohidden /Volumes/wsjtx-1.7.0-rc1-Darwin/background.png
|
||||
|
||||
# make the .DS_Store file writeable
|
||||
chmod 644 /Volumes/wsjtx-1.4.0-rc1-Darwin/.DS_Store
|
||||
chmod 644 /Volumes/wsjtx-1.7.0-rc1-Darwin/.DS_Store
|
||||
|
||||
# now you can change Finder view options, rearrange icons etc. Remember that you are
|
||||
# only changing the folder options, not the folder content as that is controlled by
|
||||
@ -73,19 +52,19 @@ chmod 644 /Volumes/wsjtx-1.4.0-rc1-Darwin/.DS_Store
|
||||
# changes are saved.
|
||||
|
||||
# set the background PNG as a hidden file
|
||||
chflags hidden /Volumes/wsjtx-1.4.0-rc1-Darwin/background.png
|
||||
chflags hidden /Volumes/wsjtx-1.7.0-rc1-Darwin/background.png
|
||||
|
||||
# make the .DS_Store file read only
|
||||
chmod 444 /Volumes/wsjtx-1.4.0-rc1-Darwin/.DS_Store
|
||||
chmod 444 /Volumes/wsjtx-1.7.0-rc1-Darwin/.DS_Store
|
||||
|
||||
# update the custom .DS_Store file in the source repository (NOTE the file name)
|
||||
cp /Volumes/wsjtx-1.4.0-rc1-Darwin/.DS_Store ~/src/wsjtx/wsjtx_DMG.DS_Store
|
||||
cp /Volumes/wsjtx-1.7.0-rc1-Darwin/.DS_Store ~/src/wsjtx/wsjtx_DMG.DS_Store
|
||||
|
||||
# build a new package and try out the new installer to test your changes
|
||||
# if all is well commit the changes
|
||||
|
||||
# dismount and eject the R/W DMG and discard it
|
||||
hdiutil detach /Volumes/wsjtx-1.4.0-rc1-Darwin
|
||||
hdiutil detach /Volumes/wsjtx-1.7.0-rc1-Darwin
|
||||
rm rw.dmg
|
||||
|
||||
# That's all Folks!
|
||||
# That's all Folks!
|
||||
|
@ -1,67 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildMachineOSBuild</key>
|
||||
<string>12F45</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>com.apple.application-bundle</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>KVASD-installer</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>AppIcon</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.k1jt.KVASD-installer</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>KVASD-installer</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>DTCompiler</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>DTPlatformBuild</key>
|
||||
<string>5A2053</string>
|
||||
<key>DTPlatformVersion</key>
|
||||
<string>GM</string>
|
||||
<key>DTSDKBuild</key>
|
||||
<string>13A595</string>
|
||||
<key>DTSDKName</key>
|
||||
<string>macosx10.9</string>
|
||||
<key>DTXcode</key>
|
||||
<string>0501</string>
|
||||
<key>DTXcodeBuild</key>
|
||||
<string>5A2053</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.7</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Created by Bill Somerville (G4WJS) on 12/11/2014.
|
||||
|
||||
The author of this work hereby waives all claim of copyright (economic and moral)
|
||||
in this work and immediately places it in the public domain; it may be used, distorted
|
||||
or destroyed in any manner whatsoever without further attribution or notice to the creator.</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
</dict>
|
||||
</plist>
|
Binary file not shown.
@ -1 +0,0 @@
|
||||
APPL????
|
Binary file not shown.
@ -1,30 +0,0 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
|
||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\paperw11900\paperh16840\vieww9600\viewh8400\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
||||
|
||||
\f0\b\fs24 \cf0 Engineering:
|
||||
\b0 \
|
||||
G4WJS - Bill Somerville\
|
||||
\
|
||||
|
||||
\b Human Interface Design:
|
||||
\b0 \
|
||||
G4WJS - Bill Somerville\
|
||||
\
|
||||
|
||||
\b Testing:
|
||||
\b0 \
|
||||
G4WJS - Bill Somerville\
|
||||
\
|
||||
|
||||
\b Documentation:
|
||||
\b0 \
|
||||
G4WJS - Bill Somerville\
|
||||
\
|
||||
|
||||
\b With special thanks to:
|
||||
\b0 \
|
||||
No one in particular.\
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,9 +0,0 @@
|
||||
NSIS Addons
|
||||
===========
|
||||
|
||||
This directory contains archives of NSIS plugins and includes that are
|
||||
used in making the WSJT-X Windows installer. The plugin DLLs are also
|
||||
extracted and deployed in sub-directories where they are added to the
|
||||
project NSIS plugin path in the project CMakeCPackOptions.cmake.in
|
||||
template which is in turn used in generating the NSIS installer script
|
||||
from the CMake/Modules/NSIS.template.in template file.
|
Loading…
Reference in New Issue
Block a user