Banish KVASD
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6129 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
|
@ -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"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | 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>
|
|
@ -1 +0,0 @@
|
|||
APPL????
|
|
@ -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,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.
|