From: Gilles Depeyrot Date: Fri, 30 Nov 2001 20:59:23 +0000 (+0000) Subject: added AppleScripts to export/import xml files from/to projects X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/643b97f8a7f3ba5b2b22fe2545a7b9ec20207d34 added AppleScripts to export/import xml files from/to projects git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12763 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/mac/BuildSamplesM5.as b/docs/mac/BuildSamplesM5.as deleted file mode 100755 index 474bf0ad2e..0000000000 --- a/docs/mac/BuildSamplesM5.as +++ /dev/null @@ -1,227 +0,0 @@ --- --- File: BuildSamplesM5.as --- Purpose: Automatic build of samples with CodeWarrior 5 --- Author: Gilles Depeyrot --- Created: 06.10.2001 --- - --- --- This AppleScript automatically recurses through the selected folder looking for --- and building CodeWarrior projects. --- To use this script, simply open it with the 'Script Editor' and run it. --- - --- --- Suffix used to recognize CodeWarrior project files --- -property gProjectSuffix : "M5.mcp" - --- --- Values used to create the log file --- -property gEol : " -" -property gSeparator : "--------------------------------------------------------------------------------" & gEol - --- --- Project and build success count --- -set theProjectCount to 0 -set theProjectSuccessCount to 0 - --- --- Default log file name --- -set theDate to (day of (current date)) & "/" & GetMonthIndex(current date) & "/" & (year of (current date)) -set theLogFileName to "wxMac samples " & theDate & ".log" - --- --- Ask the user to select the wxWindows samples folder --- -set theFolder to choose folder with prompt "Select the wxWindows samples folder" - --- --- Ask the user to choose the build log file --- -set theLogFile to choose file name with prompt "Create the wxWindows samples build log file" default name theLogFileName - --- --- Open the log file to record the build log --- -set theLogFileRef to open for access theLogFile with write permission - --- --- Write log file header --- -write gSeparator starting at 0 to theLogFileRef -write "wxWindows samples build log" & gEol to theLogFileRef -write gSeparator to theLogFileRef -write "start on " & ((current date) as string) & gEol to theLogFileRef -write gSeparator to theLogFileRef -write "building projects in '" & (theFolder as string) & "'" & gEol to theLogFileRef -write gSeparator to theLogFileRef - --- --- Build or Rebuild targets? --- -set theText to "Build or rebuild projects?" -set theBuild to button returned of (display dialog theText buttons {"Cancel", "Build", "Rebuild"} default button "Rebuild" with icon note) -if theBuild is not equal to "Cancel" then - -- - -- Build which targets? - -- - set theText to theBuild & " Classic or Carbon targets?" - set theType to button returned of (display dialog theText buttons {"Cancel", "Classic", "Carbon"} default button "Carbon" with icon note) - if theType is not equal to "Cancel" then - -- - -- Build Debug or Release targets? - -- - set theText to theBuild & " " & theType & " Debug or " & theType & " Release targets?" - set theOption to button returned of (display dialog theText buttons {"Cancel", "Release", "Debug"} default button "Debug" with icon note) - if theOption is not equal to "Cancel" then - set theTarget to theType & " " & theOption - - write "building project targets '" & theTarget & "'" & gEol to theLogFileRef - write gSeparator to theLogFileRef - - BuildProjects(theLogFileRef, theFolder, theTarget, theBuild is equal to "Rebuild") - - end if - end if -end if - --- --- Write log file footer --- -write "successful build of " & theProjectSuccessCount & " projects out of " & theProjectCount & gEol to theLogFileRef -write gSeparator to theLogFileRef -write "end on " & ((current date) as string) & gEol to theLogFileRef -write gSeparator to theLogFileRef --- --- Close the log file --- -close access theLogFileRef --- --- Open the file in BBEdit Lite --- -tell application "BBEdit Lite 6.1" - activate - open theLogFile -end tell - --- --- BuildProjects --- -on BuildProjects(inLogFileRef, inFolder, inTarget, inRebuild) - global theProjectCount, theProjectSuccessCount - - tell application "Finder" to set theSubFolders to every folder of inFolder - - repeat with theFolder in theSubFolders - - tell application "Finder" to set theProject to (the first file of theFolder whose name ends with gProjectSuffix) - - if theProject as string is not "" then - set theProjectCount to theProjectCount + 1 - write "building project '" & (theProject as string) & "'" & gEol to inLogFileRef - - tell application "CodeWarrior IDE 4.0.4" - -- - -- Open the project in CodeWarrior - -- - open theProject as string - -- - -- Change to the requested target - -- - Set Current Target inTarget - -- - -- Remove object code if rebuild requested - -- - if inRebuild then - Remove Binaries - end if - -- - -- Build/Rebuild the selected target - -- - set theBuildInfo to Make Project with ExternalEditor - -- - -- Close the project - -- - Close Project - end tell - -- - -- Report errors to build log file - -- - write gEol to inLogFileRef - ReportBuildInfo(inLogFileRef, theBuildInfo) - write gSeparator to inLogFileRef - else - BuildProjects(inLogFileRef, theFolder, inTarget, inRebuild) - end if - - end repeat -end BuildProjects - --- --- ReportBuildInfo --- -on ReportBuildInfo(inLogFileRef, inBuildInfo) - global theProjectCount, theProjectSuccessCount - - set theErrorCount to 0 - set theWarningCount to 0 - - repeat with theInfo in inBuildInfo - tell application "CodeWarrior IDE 4.0.4" - set theKind to ((messageKind of theInfo) as string) - - write "*** " & theKind & " *** " & message of theInfo & gEol to inLogFileRef - try - set theFile to ((file of theInfo) as string) - on error - set theFile to "" - end try - if theFile is not "" then - write theFile & " line " & lineNumber of theInfo & gEol to inLogFileRef - end if - write gEol to inLogFileRef - end tell - - if MessageKindIsError(theKind) then - set theErrorCount to theErrorCount + 1 - else - set theWarningCount to theWarningCount + 1 - end if - end repeat - - if theErrorCount is 0 then - set theProjectSuccessCount to theProjectSuccessCount + 1 - write "build succeeded with " & theWarningCount & " warning(s)" & gEol to inLogFileRef - else - write "build failed with " & theErrorCount & " error(s) and " & theWarningCount & " warning(s)" & gEol to inLogFileRef - end if -end ReportBuildInfo - --- --- MessageKindIsError --- -on MessageKindIsError(inKind) - if inKind is "compiler error" or inKind is "linker error" or inKind is "generic error" then - return true - else - return false - end if -end MessageKindIsError - --- --- GetMonthIndex --- -on GetMonthIndex(inDate) - set theMonth to the month of inDate - set theMonthList to {January, February, March, April, May, June, July, August, September, October, November, December} - repeat with i from 1 to the number of items in theMonthList - if theMonth is item i of theMonthList then - return i - end if - end repeat -end GetMonthIndex \ No newline at end of file diff --git a/docs/mac/M5build.applescript b/docs/mac/M5build.applescript new file mode 100644 index 0000000000..7f674cfd15 --- /dev/null +++ b/docs/mac/M5build.applescript @@ -0,0 +1,233 @@ +----------------------------------------------------------------------------- +-- Name: docs/mac/M5build.applescript +-- Purpose: Automatic build of projects with CodeWarrior 5 +-- Author: Gilles Depeyrot +-- Modified by: +-- Created: 06.10.2001 +-- RCS-ID: $Id$ +-- Copyright: (c) 2001 Gilles Depeyrot +-- Licence: wxWindows licence +----------------------------------------------------------------------------- +-- +-- This AppleScript automatically recurses through the selected folder looking for +-- and building CodeWarrior projects. +-- To use this script, simply open it with the 'Script Editor' and run it. +-- + +-- +-- Suffix used to recognize CodeWarrior project files +-- +property gProjectSuffix : "M5.mcp" + +-- +-- Values used to create the log file +-- +property gEol : " +" +property gSeparator : "--------------------------------------------------------------------------------" & gEol + +-- +-- Project and build success count +-- +set theProjectCount to 0 +set theProjectSuccessCount to 0 + +-- +-- Default log file name +-- +set theDate to (day of (current date)) & "/" & GetMonthIndex(current date) & "/" & (year of (current date)) +set theLogFileName to "wxMac samples " & theDate & ".log" + +-- +-- Ask the user to select the wxWindows samples folder +-- +set theFolder to choose folder with prompt "Select the wxWindows samples folder" + +-- +-- Ask the user to choose the build log file +-- +set theLogFile to choose file name with prompt "Create the wxWindows samples build log file" default name theLogFileName + +-- +-- Open the log file to record the build log +-- +set theLogFileRef to open for access theLogFile with write permission + +-- +-- Write log file header +-- +write gSeparator starting at 0 to theLogFileRef +write "wxWindows samples build log" & gEol to theLogFileRef +write gSeparator to theLogFileRef +write "start on " & ((current date) as string) & gEol to theLogFileRef +write gSeparator to theLogFileRef +write "building projects in '" & (theFolder as string) & "'" & gEol to theLogFileRef +write gSeparator to theLogFileRef + +-- +-- Build or Rebuild targets? +-- +set theText to "Build or rebuild projects?" +set theBuild to button returned of (display dialog theText buttons {"Cancel", "Build", "Rebuild"} default button "Rebuild" with icon note) +if theBuild is not equal to "Cancel" then + -- + -- Build which targets? + -- + set theText to theBuild & " Classic or Carbon targets?" + set theType to button returned of (display dialog theText buttons {"Cancel", "Classic", "Carbon"} default button "Carbon" with icon note) + if theType is not equal to "Cancel" then + -- + -- Build Debug or Release targets? + -- + set theText to theBuild & " " & theType & " Debug or " & theType & " Release targets?" + set theOption to button returned of (display dialog theText buttons {"Cancel", "Release", "Debug"} default button "Debug" with icon note) + if theOption is not equal to "Cancel" then + set theTarget to theType & " " & theOption + + write "building project targets '" & theTarget & "'" & gEol to theLogFileRef + write gSeparator to theLogFileRef + + BuildProjects(theLogFileRef, theFolder, theTarget, theBuild is equal to "Rebuild") + + end if + end if +end if + +-- +-- Write log file footer +-- +write "successful build of " & theProjectSuccessCount & " projects out of " & theProjectCount & gEol to theLogFileRef +write gSeparator to theLogFileRef +write "end on " & ((current date) as string) & gEol to theLogFileRef +write gSeparator to theLogFileRef +-- +-- Close the log file +-- +close access theLogFileRef +-- +-- Open the file in BBEdit Lite +-- +tell application "BBEdit Lite 6.1" + activate + open theLogFile +end tell + +-- +-- BuildProjects +-- +on BuildProjects(inLogFileRef, inFolder, inTarget, inRebuild) + global theProjectCount, theProjectSuccessCount + + try + tell application "Finder" to set theProject to ((the first file of inFolder whose name ends with gProjectSuffix) as string) + on error + set theProject to "" + end try + + if theProject is not "" then + set theProjectCount to theProjectCount + 1 + + write "building project '" & (theProject as string) & "'" & gEol to inLogFileRef + + tell application "CodeWarrior IDE 4.0.4" + -- + -- Open the project in CodeWarrior + -- + open theProject as string + -- + -- Change to the requested target + -- + Set Current Target inTarget + -- + -- Remove object code if rebuild requested + -- + if inRebuild then + Remove Binaries + end if + -- + -- Build/Rebuild the selected target + -- + set theBuildInfo to Make Project with ExternalEditor + -- + -- Close the project + -- + Close Project + end tell + -- + -- Report errors to build log file + -- + write gEol to inLogFileRef + ReportBuildInfo(inLogFileRef, theBuildInfo) + write gSeparator to inLogFileRef + end if + + tell application "Finder" to set theSubFolders to every folder of inFolder + repeat with theFolder in theSubFolders + BuildProjects(inLogFileRef, theFolder, inTarget, inRebuild) + end repeat + +end BuildProjects + +-- +-- ReportBuildInfo +-- +on ReportBuildInfo(inLogFileRef, inBuildInfo) + global theProjectCount, theProjectSuccessCount + + set theErrorCount to 0 + set theWarningCount to 0 + + repeat with theInfo in inBuildInfo + tell application "CodeWarrior IDE 4.0.4" + set theKind to ((messageKind of theInfo) as string) + + write "*** " & theKind & " *** " & message of theInfo & gEol to inLogFileRef + try + set theFile to ((file of theInfo) as string) + on error + set theFile to "" + end try + if theFile is not "" then + write theFile & " line " & lineNumber of theInfo & gEol to inLogFileRef + end if + write gEol to inLogFileRef + end tell + + if MessageKindIsError(theKind) then + set theErrorCount to theErrorCount + 1 + else + set theWarningCount to theWarningCount + 1 + end if + end repeat + + if theErrorCount is 0 then + set theProjectSuccessCount to theProjectSuccessCount + 1 + write "build succeeded with " & theWarningCount & " warning(s)" & gEol to inLogFileRef + else + write "build failed with " & theErrorCount & " error(s) and " & theWarningCount & " warning(s)" & gEol to inLogFileRef + end if +end ReportBuildInfo + +-- +-- MessageKindIsError +-- +on MessageKindIsError(inKind) + if inKind is "compiler error" or inKind is "linker error" or inKind is "generic error" then + return true + else + return false + end if +end MessageKindIsError + +-- +-- GetMonthIndex +-- +on GetMonthIndex(inDate) + set theMonth to the month of inDate + set theMonthList to {January, February, March, April, May, June, July, August, September, October, November, December} + repeat with i from 1 to the number of items in theMonthList + if theMonth is item i of theMonthList then + return i + end if + end repeat +end GetMonthIndex \ No newline at end of file diff --git a/docs/mac/M5mcp2xml.applescript b/docs/mac/M5mcp2xml.applescript new file mode 100644 index 0000000000..6902cfb383 --- /dev/null +++ b/docs/mac/M5mcp2xml.applescript @@ -0,0 +1,90 @@ +----------------------------------------------------------------------------- +-- Name: docs/mac/M5mcp2xml.applescript +-- Purpose: Automatic export of CodeWarrior 5 projects to XML files +-- Author: Gilles Depeyrot +-- Modified by: +-- Created: 28.11.2001 +-- RCS-ID: $Id$ +-- Copyright: (c) 2001 Gilles Depeyrot +-- Licence: wxWindows licence +----------------------------------------------------------------------------- +-- +-- This AppleScript automatically recurses through the selected folder looking for +-- and exporting CodeWarrior projects to xml files. +-- To use this script, simply open it with the 'Script Editor' and run it. +-- + +-- +-- Suffix used to recognize CodeWarrior project files +-- +property gProjectSuffix : "M5.mcp" + +-- +-- Project and build success count +-- +set theProjectCount to 0 +set theProjectSuccessCount to 0 + +-- +-- Ask the user to select the wxWindows samples folder +-- +set theFolder to choose folder with prompt "Select the wxWindows folder" + +ExportProjects(theFolder) + +tell me to display dialog "Exported " & theProjectSuccessCount & " projects out of " & theProjectCount + +-- +-- ExportProjects +-- +on ExportProjects(inFolder) + global theProjectCount, theProjectSuccessCount + + try + tell application "Finder" to set theProject to ((the first file of inFolder whose name ends with gProjectSuffix) as string) + on error + set theProject to "" + end try + + if theProject is not "" then + set theProjectCount to theProjectCount + 1 + + -- save the current text delimiters + set theDelimiters to my text item delimiters + + -- replace the ".mcp" extension with ".xml" + set my text item delimiters to "." + set theList to (every text item of theProject) + set theList to (items 1 thru -2 of theList) + set theExport to (theList as string) & ".xml" + + -- restore the text delimiters + set my text item delimiters to theDelimiters + + tell application "CodeWarrior IDE 4.0.4" + -- + -- Open the project in CodeWarrior + -- + open theProject + -- + -- Export the selected project + -- + try + export project document 1 in theExport + set theProjectSuccessCount to theProjectSuccessCount + 1 + on error number errnum + tell me to display dialog "Error " & errnum & " exporting " & theExport + end try + -- + -- Close the project + -- + Close Project + end tell + end if + + tell application "Finder" to set theSubFolders to every folder of inFolder + repeat with theFolder in theSubFolders + ExportProjects(theFolder) + end repeat + +end ExportProjects diff --git a/docs/mac/M5xml2mcp.applescript b/docs/mac/M5xml2mcp.applescript new file mode 100644 index 0000000000..9d993d6e74 --- /dev/null +++ b/docs/mac/M5xml2mcp.applescript @@ -0,0 +1,86 @@ +----------------------------------------------------------------------------- +-- Name: docs/mac/M5xml2mcp.applescript +-- Purpose: Automatic import of CodeWarrior 5 xml files to projects +-- Author: Gilles Depeyrot +-- Modified by: +-- Created: 30.11.2001 +-- RCS-ID: $Id$ +-- Copyright: (c) 2001 Gilles Depeyrot +-- Licence: wxWindows licence +----------------------------------------------------------------------------- +-- +-- This AppleScript automatically recurses through the selected folder looking for +-- and importing CodeWarrior xml files to projects +-- To use this script, simply open it with the 'Script Editor' and run it. +-- + +-- +-- Suffix used to recognize CodeWarrior xml files +-- +property gXmlSuffix : "M5.xml" + +-- +-- Project and build success count +-- +set theXmlCount to 0 +set theXmlSuccessCount to 0 + +-- +-- Ask the user to select the wxWindows samples folder +-- +set theFolder to choose folder with prompt "Select the wxWindows folder" + +ImportProjects(theFolder) + +tell me to display dialog "Imported " & theXmlSuccessCount & " xml files out of " & theXmlCount buttons {"OK"} + +-- +-- ImportProjects +-- +on ImportProjects(inFolder) + global theXmlCount, theXmlSuccessCount + + try + tell application "Finder" to set theXml to ((the first file of inFolder whose name ends with gXmlSuffix) as string) + on error + set theXml to "" + end try + + if theXml is not "" then + set theXmlCount to theXmlCount + 1 + + -- save the current text delimiters + set theDelimiters to my text item delimiters + + -- replace the ".xml" extension with ".mcp" + set my text item delimiters to "." + set theList to (every text item of theXml) + set theList to (items 1 thru -2 of theList) + set theImport to (theList as string) & ".mcp" + + -- restore the text delimiters + set my text item delimiters to theDelimiters + + tell application "CodeWarrior IDE 4.0.4" + -- + -- Import the selected xml file + -- + try + make new project document as theImport with data theXml + set theXmlSuccessCount to theXmlSuccessCount + 1 + -- + -- Close the project + -- + Close Project + on error number errnum + tell me to display dialog "Error " & errnum & " importing " & theXml & " to " & theImport + end try + end tell + end if + + tell application "Finder" to set theSubFolders to every folder of inFolder + repeat with theFolder in theSubFolders + ImportProjects(theFolder) + end repeat + +end ImportProjects