+++ /dev/null
---
--- 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
--- /dev/null
+-----------------------------------------------------------------------------
+-- 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
--- /dev/null
+-----------------------------------------------------------------------------
+-- 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
--- /dev/null
+-----------------------------------------------------------------------------
+-- 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