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
This commit is contained in:
233
docs/mac/M5build.applescript
Normal file
233
docs/mac/M5build.applescript
Normal file
@@ -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
|
Reference in New Issue
Block a user