You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(48) |
Jun
(8) |
Jul
(23) |
Aug
(41) |
Sep
(42) |
Oct
(22) |
Nov
(17) |
Dec
(36) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(43) |
Feb
(42) |
Mar
(17) |
Apr
(39) |
May
(16) |
Jun
(35) |
Jul
(37) |
Aug
(47) |
Sep
(49) |
Oct
(9) |
Nov
(52) |
Dec
(37) |
2008 |
Jan
(48) |
Feb
(21) |
Mar
(7) |
Apr
(2) |
May
(5) |
Jun
(17) |
Jul
(17) |
Aug
(40) |
Sep
(58) |
Oct
(38) |
Nov
(19) |
Dec
(32) |
2009 |
Jan
(67) |
Feb
(46) |
Mar
(54) |
Apr
(34) |
May
(37) |
Jun
(52) |
Jul
(67) |
Aug
(72) |
Sep
(48) |
Oct
(35) |
Nov
(27) |
Dec
(12) |
2010 |
Jan
(56) |
Feb
(46) |
Mar
(19) |
Apr
(14) |
May
(21) |
Jun
(3) |
Jul
(13) |
Aug
(48) |
Sep
(34) |
Oct
(51) |
Nov
(16) |
Dec
(32) |
2011 |
Jan
(36) |
Feb
(14) |
Mar
(12) |
Apr
(3) |
May
(5) |
Jun
(24) |
Jul
(15) |
Aug
(30) |
Sep
(21) |
Oct
(4) |
Nov
(25) |
Dec
(23) |
2012 |
Jan
(45) |
Feb
(42) |
Mar
(19) |
Apr
(14) |
May
(13) |
Jun
(7) |
Jul
(3) |
Aug
(46) |
Sep
(21) |
Oct
(10) |
Nov
(2) |
Dec
|
2013 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ou...@us...> - 2011-08-28 12:43:28
|
Revision: 3592 http://jcl.svn.sourceforge.net/jcl/?rev=3592&view=rev Author: outchy Date: 2011-08-28 12:43:20 +0000 (Sun, 28 Aug 2011) Log Message: ----------- help update after revision 3560. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=3560&view=rev Modified Paths: -------------- trunk/help/ContainerCopies.dtx trunk/help/containers/JclAlgorithms.inc trunk/help/containers/JclArrayLists.inc trunk/help/containers/JclArraySets.inc trunk/help/containers/JclBinaryTrees.inc trunk/help/containers/JclContainerIntf.inc trunk/help/containers/JclHashMaps.inc trunk/help/containers/JclLinkedLists.inc trunk/help/containers/JclQueues.inc trunk/help/containers/JclSortedMaps.inc trunk/help/containers/JclStacks.inc trunk/help/containers/JclTrees.inc trunk/help/containers/JclVectors.inc Modified: trunk/help/ContainerCopies.dtx =================================================================== --- trunk/help/ContainerCopies.dtx 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/ContainerCopies.dtx 2011-08-28 12:43:20 UTC (rev 3592) @@ -1,5 +1,3 @@ - - @@MoveArray@TDynIInterfaceArray@SizeInt@SizeInt@SizeInt <copy MoveArray@TDynObjectArray@SizeInt@SizeInt@SizeInt> \ \ @@ -2009,8 +2007,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclIntfArrayIterator.Create@IJclIntfList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclIntfArrayIterator.Create@TJclIntfArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclIntfArrayIterator.CreateEmptyIterator @@ -2096,8 +2094,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclAnsiStrArrayIterator.Create@IJclAnsiStrList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclAnsiStrArrayIterator.Create@TJclAnsiStrArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclAnsiStrArrayIterator.CreateEmptyIterator @@ -2183,8 +2181,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclWideStrArrayIterator.Create@IJclWideStrList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclWideStrArrayIterator.Create@TJclWideStrArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclWideStrArrayIterator.CreateEmptyIterator @@ -2270,8 +2268,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclUnicodeStrArrayIterator.Create@IJclUnicodeStrList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclUnicodeStrArrayIterator.Create@TJclUnicodeStrArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclUnicodeStrArrayIterator.CreateEmptyIterator @@ -2357,8 +2355,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclSingleArrayIterator.Create@IJclSingleList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclSingleArrayIterator.Create@TJclSingleArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclSingleArrayIterator.CreateEmptyIterator @@ -2444,8 +2442,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclDoubleArrayIterator.Create@IJclDoubleList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclDoubleArrayIterator.Create@TJclDoubleArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclDoubleArrayIterator.CreateEmptyIterator @@ -2531,8 +2529,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclExtendedArrayIterator.Create@IJclExtendedList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclExtendedArrayIterator.Create@TJclExtendedArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclExtendedArrayIterator.CreateEmptyIterator @@ -2618,8 +2616,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclIntegerArrayIterator.Create@IJclIntegerList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclIntegerArrayIterator.Create@TJclIntegerArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclIntegerArrayIterator.CreateEmptyIterator @@ -2705,8 +2703,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclCardinalArrayIterator.Create@IJclCardinalList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclCardinalArrayIterator.Create@TJclCardinalArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclCardinalArrayIterator.CreateEmptyIterator @@ -2792,8 +2790,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclInt64ArrayIterator.Create@IJclInt64List@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclInt64ArrayIterator.Create@TJclInt64ArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclInt64ArrayIterator.CreateEmptyIterator @@ -2879,8 +2877,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclPtrArrayIterator.Create@IJclPtrList@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclPtrArrayIterator.Create@TJclPtrArrayList@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@TJclPtrArrayIterator.CreateEmptyIterator @@ -21394,12 +21392,10 @@ \ \ - @@TJclIntfHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclIntfHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -21445,12 +21441,10 @@ \ \ - @@TJclIntfHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclIntfHashMap.GetValue@IInterface <copy TJclHashMap.GetValue@TObject> \ \ @@ -21519,12 +21513,10 @@ \ \ - @@TJclAnsiStrHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclAnsiStrHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -21570,12 +21562,10 @@ \ \ - @@TJclAnsiStrHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclAnsiStrHashMap.GetValue@AnsiString <copy TJclHashMap.GetValue@TObject> \ \ @@ -21644,12 +21634,10 @@ \ \ - @@TJclWideStrHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclWideStrHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -21695,12 +21683,10 @@ \ \ - @@TJclWideStrHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclWideStrHashMap.GetValue@WideString <copy TJclHashMap.GetValue@TObject> \ \ @@ -21769,12 +21755,10 @@ \ \ - @@TJclUnicodeStrHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclUnicodeStrHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -21820,12 +21804,10 @@ \ \ - @@TJclUnicodeStrHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclUnicodeStrHashMap.GetValue@UnicodeString <copy TJclHashMap.GetValue@TObject> \ \ @@ -21894,12 +21876,10 @@ \ \ - @@TJclSingleHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclSingleHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -21945,12 +21925,10 @@ \ \ - @@TJclSingleHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclSingleHashMap.GetValue@Single <copy TJclHashMap.GetValue@TObject> \ \ @@ -22019,12 +21997,10 @@ \ \ - @@TJclDoubleHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclDoubleHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -22070,12 +22046,10 @@ \ \ - @@TJclDoubleHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclDoubleHashMap.GetValue@Double <copy TJclHashMap.GetValue@TObject> \ \ @@ -22144,12 +22118,10 @@ \ \ - @@TJclExtendedHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclExtendedHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -22195,12 +22167,10 @@ \ \ - @@TJclExtendedHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclExtendedHashMap.GetValue@Extended <copy TJclHashMap.GetValue@TObject> \ \ @@ -22269,12 +22239,10 @@ \ \ - @@TJclIntegerHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclIntegerHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -22320,12 +22288,10 @@ \ \ - @@TJclIntegerHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclIntegerHashMap.GetValue@Integer <copy TJclHashMap.GetValue@TObject> \ \ @@ -22394,12 +22360,10 @@ \ \ - @@TJclCardinalHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclCardinalHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -22445,12 +22409,10 @@ \ \ - @@TJclCardinalHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclCardinalHashMap.GetValue@Cardinal <copy TJclHashMap.GetValue@TObject> \ \ @@ -22519,12 +22481,10 @@ \ \ - @@TJclInt64HashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclInt64HashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -22570,12 +22530,10 @@ \ \ - @@TJclInt64HashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclInt64HashMap.GetValue@Int64 <copy TJclHashMap.GetValue@TObject> \ \ @@ -22644,12 +22602,10 @@ \ \ - @@TJclPtrHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclPtrHashMap.AssignDataTo@TJclAbstractContainerBase <copy TJclHashMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -22695,12 +22651,10 @@ \ \ - @@TJclPtrHashMap.OwnsValues <copy TJclHashMap.OwnsValues> \ \ - @@TJclPtrHashMap.GetValue@Pointer <copy TJclHashMap.GetValue@TObject> \ \ @@ -22757,6 +22711,7 @@ <copy TJclHashMap.ValuesEqual@TObject@TObject> \ \ + @@TJclIntfHashSet <copy TJclHashSet> \ \ @@ -24727,7 +24682,6 @@ <copy TJclHashSet.Union@IJclCollection> \ \ - @@TJclIntfLinkedListItem <copy TJclLinkedListItem> \ \ @@ -26314,8 +26268,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclIntfLinkedListIterator.Create@IJclIntfList@TJclIntfLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclIntfLinkedListIterator.Create@TJclIntfLinkedList@TJclIntfLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclIntfLinkedListIterator.CreateEmptyIterator @@ -26397,8 +26351,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclAnsiStrLinkedListIterator.Create@IJclAnsiStrList@TJclAnsiStrLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclAnsiStrLinkedListIterator.Create@TJclAnsiStrLinkedList@TJclAnsiStrLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclAnsiStrLinkedListIterator.CreateEmptyIterator @@ -26480,8 +26434,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclWideStrLinkedListIterator.Create@IJclWideStrList@TJclWideStrLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclWideStrLinkedListIterator.Create@TJclWideStrLinkedList@TJclWideStrLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclWideStrLinkedListIterator.CreateEmptyIterator @@ -26563,8 +26517,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclUnicodeStrLinkedListIterator.Create@IJclUnicodeStrList@TJclUnicodeStrLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclUnicodeStrLinkedListIterator.Create@TJclUnicodeStrLinkedList@TJclUnicodeStrLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclUnicodeStrLinkedListIterator.CreateEmptyIterator @@ -26646,8 +26600,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclSingleLinkedListIterator.Create@IJclSingleList@TJclSingleLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclSingleLinkedListIterator.Create@TJclSingleLinkedList@TJclSingleLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclSingleLinkedListIterator.CreateEmptyIterator @@ -26729,8 +26683,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclDoubleLinkedListIterator.Create@IJclDoubleList@TJclDoubleLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclDoubleLinkedListIterator.Create@TJclDoubleLinkedList@TJclDoubleLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclDoubleLinkedListIterator.CreateEmptyIterator @@ -26812,8 +26766,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclExtendedLinkedListIterator.Create@IJclExtendedList@TJclExtendedLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclExtendedLinkedListIterator.Create@TJclExtendedLinkedList@TJclExtendedLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclExtendedLinkedListIterator.CreateEmptyIterator @@ -26895,8 +26849,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclIntegerLinkedListIterator.Create@IJclIntegerList@TJclIntegerLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclIntegerLinkedListIterator.Create@TJclIntegerLinkedList@TJclIntegerLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclIntegerLinkedListIterator.CreateEmptyIterator @@ -26978,8 +26932,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclCardinalLinkedListIterator.Create@IJclCardinalList@TJclCardinalLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclCardinalLinkedListIterator.Create@TJclCardinalLinkedList@TJclCardinalLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclCardinalLinkedListIterator.CreateEmptyIterator @@ -27061,8 +27015,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclInt64LinkedListIterator.Create@IJclInt64List@TJclInt64LinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclInt64LinkedListIterator.Create@TJclInt64LinkedList@TJclInt64LinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclInt64LinkedListIterator.CreateEmptyIterator @@ -27144,8 +27098,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclPtrLinkedListIterator.Create@IJclPtrList@TJclPtrLinkedListItem@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@TJclPtrLinkedListIterator.Create@TJclPtrLinkedList@TJclPtrLinkedListItem@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@TJclPtrLinkedListIterator.CreateEmptyIterator @@ -32394,12 +32348,10 @@ \ \ - @@TJclIntfSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclIntfSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -32449,12 +32401,10 @@ \ \ - @@TJclIntfSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclIntfSortedMap.GetValue@IInterface <copy TJclSortedMap.GetValue@TObject> \ \ @@ -32535,12 +32485,10 @@ \ \ - @@TJclAnsiStrSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclAnsiStrSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -32590,12 +32538,10 @@ \ \ - @@TJclAnsiStrSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclAnsiStrSortedMap.GetValue@AnsiString <copy TJclSortedMap.GetValue@TObject> \ \ @@ -32676,12 +32622,10 @@ \ \ - @@TJclWideStrSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclWideStrSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -32731,12 +32675,10 @@ \ \ - @@TJclWideStrSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclWideStrSortedMap.GetValue@WideString <copy TJclSortedMap.GetValue@TObject> \ \ @@ -32817,12 +32759,10 @@ \ \ - @@TJclUnicodeStrSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclUnicodeStrSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -32872,12 +32812,10 @@ \ \ - @@TJclUnicodeStrSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclUnicodeStrSortedMap.GetValue@UnicodeString <copy TJclSortedMap.GetValue@TObject> \ \ @@ -32958,12 +32896,10 @@ \ \ - @@TJclSingleSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclSingleSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -33013,12 +32949,10 @@ \ \ - @@TJclSingleSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclSingleSortedMap.GetValue@Single <copy TJclSortedMap.GetValue@TObject> \ \ @@ -33099,12 +33033,10 @@ \ \ - @@TJclDoubleSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclDoubleSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -33154,12 +33086,10 @@ \ \ - @@TJclDoubleSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclDoubleSortedMap.GetValue@Double <copy TJclSortedMap.GetValue@TObject> \ \ @@ -33240,12 +33170,10 @@ \ \ - @@TJclExtendedSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclExtendedSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -33295,12 +33223,10 @@ \ \ - @@TJclExtendedSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclExtendedSortedMap.GetValue@Extended <copy TJclSortedMap.GetValue@TObject> \ \ @@ -33381,12 +33307,10 @@ \ \ - @@TJclIntegerSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclIntegerSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -33436,12 +33360,10 @@ \ \ - @@TJclIntegerSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclIntegerSortedMap.GetValue@Integer <copy TJclSortedMap.GetValue@TObject> \ \ @@ -33522,12 +33444,10 @@ \ \ - @@TJclCardinalSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclCardinalSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -33577,12 +33497,10 @@ \ \ - @@TJclCardinalSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclCardinalSortedMap.GetValue@Cardinal <copy TJclSortedMap.GetValue@TObject> \ \ @@ -33663,12 +33581,10 @@ \ \ - @@TJclInt64SortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclInt64SortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -33718,12 +33634,10 @@ \ \ - @@TJclInt64SortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclInt64SortedMap.GetValue@Int64 <copy TJclSortedMap.GetValue@TObject> \ \ @@ -33804,12 +33718,10 @@ \ \ - @@TJclPtrSortedMap.OwnsValues <copy TJclSortedMap.OwnsValues> \ \ - @@TJclPtrSortedMap.AssignDataTo@TJclAbstractContainerBase <copy TJclSortedMap.AssignDataTo@TJclAbstractContainerBase> \ \ @@ -33859,12 +33771,10 @@ \ \ - @@TJclPtrSortedMap.GetOwnsValues <copy TJclSortedMap.GetOwnsValues> \ \ - @@TJclPtrSortedMap.GetValue@Pointer <copy TJclSortedMap.GetValue@TObject> \ \ @@ -40073,8 +39983,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclIntfVectorIterator.Create@IJclIntfList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclIntfVectorIterator.Create@TJclIntfVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclIntfVectorIterator.CreateEmptyIterator @@ -40156,8 +40066,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclAnsiStrVectorIterator.Create@IJclAnsiStrList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclAnsiStrVectorIterator.Create@TJclAnsiStrVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclAnsiStrVectorIterator.CreateEmptyIterator @@ -40239,8 +40149,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclWideStrVectorIterator.Create@IJclWideStrList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclWideStrVectorIterator.Create@TJclWideStrVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclWideStrVectorIterator.CreateEmptyIterator @@ -40322,8 +40232,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclUnicodeStrVectorIterator.Create@IJclUnicodeStrList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclUnicodeStrVectorIterator.Create@TJclUnicodeStrVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclUnicodeStrVectorIterator.CreateEmptyIterator @@ -40405,8 +40315,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclSingleVectorIterator.Create@IJclSingleList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclSingleVectorIterator.Create@TJclSingleVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclSingleVectorIterator.CreateEmptyIterator @@ -40488,8 +40398,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclDoubleVectorIterator.Create@IJclDoubleList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclDoubleVectorIterator.Create@TJclDoubleVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclDoubleVectorIterator.CreateEmptyIterator @@ -40571,8 +40481,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclExtendedVectorIterator.Create@IJclExtendedList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclExtendedVectorIterator.Create@TJclExtendedVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclExtendedVectorIterator.CreateEmptyIterator @@ -40654,8 +40564,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclIntegerVectorIterator.Create@IJclIntegerList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclIntegerVectorIterator.Create@TJclIntegerVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclIntegerVectorIterator.CreateEmptyIterator @@ -40737,8 +40647,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclCardinalVectorIterator.Create@IJclCardinalList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclCardinalVectorIterator.Create@TJclCardinalVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclCardinalVectorIterator.CreateEmptyIterator @@ -40820,8 +40730,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclInt64VectorIterator.Create@IJclInt64List@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclInt64VectorIterator.Create@TJclInt64Vector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclInt64VectorIterator.CreateEmptyIterator @@ -40903,8 +40813,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@TJclPtrVectorIterator.Create@IJclPtrList@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@TJclPtrVectorIterator.Create@TJclPtrVector@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@TJclPtrVectorIterator.CreateEmptyIterator @@ -40966,3 +40876,4 @@ @@TJclPtrVectorIterator.SetPointer@Pointer <copy TJclVectorIterator.SetObject@TObject> \ \ + Modified: trunk/help/containers/JclAlgorithms.inc =================================================================== --- trunk/help/containers/JclAlgorithms.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclAlgorithms.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -4,7 +4,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO MOVEARRAYINT(MoveArray,)}*) +{$JPPEXPANDMACRO MOVEARRAYINT(MoveArray,)} +*) (*$JPPDEFINEMACRO ITERATEINT(PROCNAME, ITRINTERFACENAME, CALLBACKTYPE) @@PROCNAME@ITRINTERFACENAME@Integer@CALLBACKTYPE @@ -12,7 +13,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO ITERATEINT(Iterate,,)}*) +{$JPPEXPANDMACRO ITERATEINT(Iterate,,)} +*) (*$JPPDEFINEMACRO APPLYINT(PROCNAME, ITRINTERFACENAME, CALLBACKTYPE) @@PROCNAME@ITRINTERFACENAME@Integer@CALLBACKTYPE @@ -20,7 +22,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO APPLYINT(Apply,,)}*) +{$JPPEXPANDMACRO APPLYINT(Apply,,)} +*) (*$JPPDEFINEMACRO SIMPLECOMPAREINT(PROCNAME, TYPENAME) @@PROCNAME@TYPENAME@TYPENAME @@ -28,7 +31,8 @@ \ \ *) (*$JPPLOOP ALLTYPEINDEX HELPALLTYPECOUNT -{$JPPEXPANDMACRO SIMPLECOMPAREINT(,)}*) +{$JPPEXPANDMACRO SIMPLECOMPAREINT(,)} +*) (*$JPPDEFINEMACRO SIMPLEEQUALITYCOMPAREINT(PROCNAME, TYPENAME) @@PROCNAME@TYPENAME@TYPENAME @@ -36,7 +40,8 @@ \ \ *) (*$JPPLOOP ALLTYPEINDEX HELPALLTYPECOUNT -{$JPPEXPANDMACRO SIMPLEEQUALITYCOMPAREINT(,)}*) +{$JPPEXPANDMACRO SIMPLEEQUALITYCOMPAREINT(,)} +*) (*$JPPDEFINEMACRO SIMPLEHASHCONVERTINT(PROCNAME, TYPENAME) @@PROCNAME@TYPENAME @@ -44,7 +49,8 @@ \ \ *) (*$JPPLOOP ALLTYPEINDEX HELPALLTYPECOUNT -{$JPPEXPANDMACRO SIMPLEHASHCONVERTINT(,)}*) +{$JPPEXPANDMACRO SIMPLEHASHCONVERTINT(,)} +*) (*$JPPDEFINEMACRO FINDINT(PROCNAME, ITRINTERFACENAME, TYPENAME, CALLBACKTYPE) @@PROCNAME@ITRINTERFACENAME@Integer@TYPENAME@CALLBACKTYPE @@ -52,7 +58,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO FINDINT(Find,,,)}*) +{$JPPEXPANDMACRO FINDINT(Find,,,)} +*) (*$JPPDEFINEMACRO FINDEQINT(PROCNAME,ITRINTERFACENAME, TYPENAME, CALLBACKTYPE) @@PROCNAME@ITRINTERFACENAME@Integer@TYPENAME@CALLBACKTYPE @@ -60,7 +67,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO FINDEQINT(Find,,,)}*) +{$JPPEXPANDMACRO FINDEQINT(Find,,,)} +*) (*$JPPDEFINEMACRO COUNTOBJECTINT(PROCNAME, ITRINTERFACENAME, TYPENAME, CALLBACKTYPE) @@PROCNAME@ITRINTERFACENAME@Integer@TYPENAME@CALLBACKTYPE @@ -68,7 +76,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO COUNTOBJECTINT(CountObject,,,)}*) +{$JPPEXPANDMACRO COUNTOBJECTINT(CountObject,,,)} +*) (*$JPPDEFINEMACRO COUNTOBJECTEQINT(PROCNAME, ITRINTERFACENAME, TYPENAME, CALLBACKTYPE) @@PROCNAME@ITRINTERFACENAME@Integer@TYPENAME@CALLBACKTYPE @@ -76,7 +85,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO COUNTOBJECTEQINT(CountObject,,,)}*) +{$JPPEXPANDMACRO COUNTOBJECTEQINT(CountObject,,,)} +*) (*$JPPDEFINEMACRO COPYINT(PROCNAME, ITRINTERFACENAME) @@PROCNAME@ITRINTERFACENAME@Integer@ITRINTERFACENAME @@ -84,7 +94,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO COPYINT(Copy,)}*) +{$JPPEXPANDMACRO COPYINT(Copy,)} +*) (*$JPPDEFINEMACRO GENERATEINT(PROCNAME, LISTINTERFACENAME, TYPENAME) @@PROCNAME@LISTINTERFACENAME@Integer@TYPENAME @@ -92,7 +103,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO GENERATEINT(Generate,,)}*) +{$JPPEXPANDMACRO GENERATEINT(Generate,,)} +*) (*$JPPDEFINEMACRO FILLINT(PROCNAME, ITRINTERFACENAME, TYPENAME) @@PROCNAME@ITRINTERFACENAME@Integer@TYPENAME @@ -100,7 +112,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO FILLINT(Fill,,)}*) +{$JPPEXPANDMACRO FILLINT(Fill,,)} +*) (*$JPPDEFINEMACRO REVERSEINT(PROCNAME, ITRINTERFACENAME) @@PROCNAME@ITRINTERFACENAME@ITRINTERFACENAME @@ -108,7 +121,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO REVERSEINT(Reverse,)}*) +{$JPPEXPANDMACRO REVERSEINT(Reverse,)} +*) (*$JPPDEFINEMACRO SORTINT(PROCNAME, LISTINTERFACENAME, CALLBACKTYPE) @@PROCNAME@LISTINTERFACENAME@Integer@Integer@CALLBACKTYPE @@ -116,4 +130,5 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO SORTINT(Sort,,)}*) +{$JPPEXPANDMACRO SORTINT(Sort,,)} +*) Modified: trunk/help/containers/JclArrayLists.inc =================================================================== --- trunk/help/containers/JclArrayLists.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclArrayLists.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -132,8 +132,9 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLARRAYLISTINT(,,,,)}*) -(*$JPPDEFINEMACRO JCLARRAYLISTITRINT(SELFCLASSNAME, ITRINTERFACENAME, LISTINTERFACENAME, +{$JPPEXPANDMACRO JCLARRAYLISTINT(,,,,)} +*) +(*$JPPDEFINEMACRO JCLARRAYLISTITRINT(SELFCLASSNAME, ITRINTERFACENAME, LISTCLASSNAME, TYPENAME, GETTERNAME, SETTERNAME) @@SELFCLASSNAME <copy TJclArrayIterator> @@ -159,8 +160,8 @@ <copy TJclArrayIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@SELFCLASSNAME.Create@LISTINTERFACENAME@Integer@Boolean@TItrStart -<copy TJclArrayIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@SELFCLASSNAME.Create@LISTCLASSNAME@Integer@Boolean@TItrStart +<copy TJclArrayIterator.Create@TJclArray@Integer@Boolean@TItrStart> \ \ @@SELFCLASSNAME.CreateEmptyIterator @@ -224,4 +225,5 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLARRAYLISTITRINT(,,,,,)}*) +{$JPPEXPANDMACRO JCLARRAYLISTITRINT(,,,,,)} +*) Modified: trunk/help/containers/JclArraySets.inc =================================================================== --- trunk/help/containers/JclArraySets.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclArraySets.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -40,5 +40,6 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLARRAYSETINT(,,)}*) +{$JPPEXPANDMACRO JCLARRAYSETINT(,,)} +*) Modified: trunk/help/containers/JclBinaryTrees.inc =================================================================== --- trunk/help/containers/JclBinaryTrees.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclBinaryTrees.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -24,7 +24,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLBINARYTREETYPESINT()}*) +{$JPPEXPANDMACRO JCLBINARYTREETYPESINT()} +*) (*$JPPDEFINEMACRO JCLBINARYTREEINT(SELFCLASSNAME, COLLECTIONINTERFACENAME, COMPAREFUNCTIONNAME, TYPENAME) @@SELFCLASSNAME @@ -152,7 +153,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLBINARYTREEINT(,,,)}*) +{$JPPEXPANDMACRO JCLBINARYTREEINT(,,,)} +*) (*$JPPDEFINEMACRO JCLBINARYTREEITRINT(BASEITRCLASSNAME, PREORDERITRCLASSNAME, INORDERITRCLASSNAME, POSTORDERITRCLASSNAME, STDITRINTERFACENAME, COLLECTIONINTERFACENAME, NODETYPENAME, TYPENAME, GETTERNAME, SETTERNAME) @@ -373,4 +375,5 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLBINARYTREEITRINT(,,,,,,,,,)}*) +{$JPPEXPANDMACRO JCLBINARYTREEITRINT(,,,,,,,,,)} +*) Modified: trunk/help/containers/JclContainerIntf.inc =================================================================== --- trunk/help/containers/JclContainerIntf.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclContainerIntf.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -4,7 +4,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO ITERPROCEDURE()}*) +{$JPPEXPANDMACRO ITERPROCEDURE()} +*) (*$JPPDEFINEMACRO APPLYFUNCTION(FUNCNAME) @@FUNCNAME @@ -12,7 +13,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO APPLYFUNCTION()}*) +{$JPPEXPANDMACRO APPLYFUNCTION()} +*) (*$JPPDEFINEMACRO COMPAREFUNCTION(FUNCNAME) @@FUNCNAME @@ -20,7 +22,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO COMPAREFUNCTION()}*) +{$JPPEXPANDMACRO COMPAREFUNCTION()} +*) (*$JPPDEFINEMACRO EQUALITYCOMPAREFUNCTION(FUNCNAME) @@FUNCNAME @@ -28,7 +31,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO EQUALITYCOMPAREFUNCTION()}*) +{$JPPEXPANDMACRO EQUALITYCOMPAREFUNCTION()} +*) (*$JPPDEFINEMACRO HASHFUNCTION(FUNCNAME) @@FUNCNAME @@ -36,7 +40,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO HASHFUNCTION()}*) +{$JPPEXPANDMACRO HASHFUNCTION()} +*) (*$JPPDEFINEMACRO SORTPROC(PROCNAME) @@PROCNAME @@ -44,7 +49,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO SORTPROC()}*) +{$JPPEXPANDMACRO SORTPROC()} +*) (*$JPPDEFINEMACRO EQUALITYCOMPARER(INTERFACENAME, EQUALITYCOMPARETYPENAME, TYPENAME) @@INTERFACENAME @@ -72,7 +78,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO EQUALITYCOMPARER(,,)}*) +{$JPPEXPANDMACRO EQUALITYCOMPARER(,,)} +*) (*$JPPDEFINEMACRO COMPARER(INTERFACENAME, COMPARETYPENAME, TYPENAME) @@INTERFACENAME @@ -100,7 +107,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO COMPARER(,,)}*) +{$JPPEXPANDMACRO COMPARER(,,)} +*) (*$JPPDEFINEMACRO HASHCONVERTER(INTERFACENAME, HASHCONVERTTYPENAME, TYPENAME) @@INTERFACENAME @@ -128,7 +136,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO HASHCONVERTER(,,)}*) +{$JPPEXPANDMACRO HASHCONVERTER(,,)} +*) (*$JPPDEFINEMACRO ITERATOR(INTERFACENAME, TYPENAME, GETTERNAME, SETTERNAME) @@INTERFACENAME @@ -204,7 +213,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO ITERATOR(,,,)}*) +{$JPPEXPANDMACRO ITERATOR(,,,)} +*) (*$JPPDEFINEMACRO TREEITERATOR(INTERFACENAME, TYPENAME) @@INTERFACENAME @@ -272,7 +282,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO TREEITERATOR(,)}*) +{$JPPEXPANDMACRO TREEITERATOR(,)} +*) (*$JPPDEFINEMACRO BINTREEITERATOR(INTERFACENAME) @@INTERFACENAME @@ -300,7 +311,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO BINTREEITERATOR()}*) +{$JPPEXPANDMACRO BINTREEITERATOR()} +*) (*$JPPDEFINEMACRO COLLECTION(INTERFACENAME, TYPENAME) @@INTERFACENAME @@ -376,7 +388,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO COLLECTION(,)}*) +{$JPPEXPANDMACRO COLLECTION(,)} +*) (*$JPPDEFINEMACRO LIST(LISTINTERFACENAME, COLLECTIONINTERFACENAME, TYPENAME, GETTERNAME, SETTERNAME, PROPNAME) @@LISTINTERFACENAME @@ -428,7 +441,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO LIST(,,,,,)}*) +{$JPPEXPANDMACRO LIST(,,,,,)} +*) (*$JPPDEFINEMACRO ARRAY(INTERFACENAME, TYPENAME, GETTERNAME, SETTERNAME, PROPNAME) @@INTERFACENAME @@ -502,7 +516,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO ARRAY(,,,,)}*) +{$JPPEXPANDMACRO ARRAY(,,,,)} +*) (*$JPPDEFINEMACRO MAP(INTERFACENAME, KEYTYPENAME, VALUETYPENAME) @@INTERFACENAME @@ -574,7 +589,8 @@ \ \ *) (*$JPPLOOP TRUEMAPINDEX HELPTRUEMAPCOUNT -{$JPPEXPANDMACRO MAP(,,)}*) +{$JPPEXPANDMACRO MAP(,,)} +*) (*$JPPDEFINEMACRO QUEUE(INTERFACENAME, TYPENAME) @@INTERFACENAME @@ -614,7 +630,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO QUEUE(,)}*) +{$JPPEXPANDMACRO QUEUE(,)} +*) (*$JPPDEFINEMACRO SORTEDMAP(INTERFACENAME, KEYTYPENAME) @@INTERFACENAME @@ -646,7 +663,8 @@ \ \ *) (*$JPPLOOP TRUEMAPINDEX HELPTRUEMAPCOUNT -{$JPPEXPANDMACRO SORTEDMAP(,)}*) +{$JPPEXPANDMACRO SORTEDMAP(,)} +*) (*$JPPDEFINEMACRO SORTEDSET(INTERFACENAME, TYPENAME) @@INTERFACENAME @@ -670,7 +688,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO SORTEDSET(,)}*) +{$JPPEXPANDMACRO SORTEDSET(,)} +*) (*$JPPDEFINEMACRO STACK(INTERFACENAME, TYPENAME) @@INTERFACENAME @@ -710,5 +729,6 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO STACK(,)}*) +{$JPPEXPANDMACRO STACK(,)} +*) Modified: trunk/help/containers/JclHashMaps.inc =================================================================== --- trunk/help/containers/JclHashMaps.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclHashMaps.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -34,7 +34,8 @@ \ \ *) (*$JPPLOOP TRUEMAPINDEX HELPTRUEMAPCOUNT -{$JPPEXPANDMACRO JCLHASHMAPTYPESINT(,)}*) +{$JPPEXPANDMACRO JCLHASHMAPTYPESINT(,)} +*) (*$JPPDEFINEMACRO JCLHASHMAPINT(SELFCLASSNAME, MAPINTERFACENAME, KEYTYPENAME, VALUETYPENAME) @@SELFCLASSNAME @@ -174,4 +175,5 @@ \ \ *) (*$JPPLOOP TRUEMAPINDEX HELPTRUEMAPCOUNT -{$JPPEXPANDMACRO JCLHASHMAPINT(,,,)}*) +{$JPPEXPANDMACRO JCLHASHMAPINT(,,,)} +*) Modified: trunk/help/containers/JclLinkedLists.inc =================================================================== --- trunk/help/containers/JclLinkedLists.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclLinkedLists.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -20,7 +20,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLLINKEDLISTTYPESINT()}*) +{$JPPEXPANDMACRO JCLLINKEDLISTTYPESINT()} +*) (*$JPPDEFINEMACRO JCLLINKEDLISTINT(SELFCLASSNAME, COLLECTIONINTERFACENAME, TYPENAME, GETTERNAME, SETTERNAME) @@SELFCLASSNAME @@ -148,9 +149,10 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLLINKEDLISTINT(,,,,)}*) +{$JPPEXPANDMACRO JCLLINKEDLISTINT(,,,,)} +*) -(*$JPPDEFINEMACRO JCLLINKEDLISTITRINT(SELFCLASSNAME, ITRINTERFACENAME, LISTINTERFACENAME, ITEMCLASSNAME, TYPENAME, GETTERNAME, SETTERNAME) +(*$JPPDEFINEMACRO JCLLINKEDLISTITRINT(SELFCLASSNAME, ITRINTERFACENAME, LISTCLASSNAME, ITEMCLASSNAME, TYPENAME, GETTERNAME, SETTERNAME) @@SELFCLASSNAME <copy TJclLinkedListIterator> \ \ @@ -171,8 +173,8 @@ <copy TJclLinkedListIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@SELFCLASSNAME.Create@LISTINTERFACENAME@ITEMCLASSNAME@Boolean@TItrStart -<copy TJclLinkedListIterator.Create@IJclList@TJclLinkedListItem@Boolean@TItrStart> +@@SELFCLASSNAME.Create@LISTCLASSNAME@ITEMCLASSNAME@Boolean@TItrStart +<copy TJclLinkedListIterator.Create@TJclLinkedList@TJclLinkedListItem@Boolean@TItrStart> \ \ @@SELFCLASSNAME.CreateEmptyIterator @@ -236,4 +238,5 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLLINKEDLISTITRINT(,,,,,,)}*) +{$JPPEXPANDMACRO JCLLINKEDLISTITRINT(,,,,,,)} +*) Modified: trunk/help/containers/JclQueues.inc =================================================================== --- trunk/help/containers/JclQueues.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclQueues.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -60,4 +60,5 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLQUEUEINT(,)}*) +{$JPPEXPANDMACRO JCLQUEUEINT(,)} +*) Modified: trunk/help/containers/JclSortedMaps.inc =================================================================== --- trunk/help/containers/JclSortedMaps.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclSortedMaps.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -14,7 +14,8 @@ \ \ *) (*$JPPLOOP TRUEMAPINDEX HELPTRUEMAPCOUNT -{$JPPEXPANDMACRO JCLSORTEDMAPTYPESINT()}*) +{$JPPEXPANDMACRO JCLSORTEDMAPTYPESINT()} +*) (*$JPPDEFINEMACRO JCLSORTEDMAPINT(SELFCLASSNAME, STDMAPINTERFACENAME, KEYTYPENAME, VALUETYPENAME) @@SELFCLASSNAME @@ -170,4 +171,5 @@ \ \ *) (*$JPPLOOP TRUEMAPINDEX HELPTRUEMAPCOUNT -{$JPPEXPANDMACRO JCLSORTEDMAPINT(,,,)}*) +{$JPPEXPANDMACRO JCLSORTEDMAPINT(,,,)} +*) Modified: trunk/help/containers/JclStacks.inc =================================================================== --- trunk/help/containers/JclStacks.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclStacks.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -56,4 +56,5 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLSTACKINT(,)}*) +{$JPPEXPANDMACRO JCLSTACKINT(,)} +*) Modified: trunk/help/containers/JclTrees.inc =================================================================== --- trunk/help/containers/JclTrees.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclTrees.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -32,7 +32,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLTREETYPESINT(,,)}*) +{$JPPEXPANDMACRO JCLTREETYPESINT(,,)} +*) (*$JPPDEFINEMACRO JCLTREEINT(NODETYPENAME, SELFCLASSNAME, COLLECTIONINTERFACENAME, TYPENAME) @@SELFCLASSNAME @@ -176,7 +177,8 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLTREEINT(,,,)}*) +{$JPPEXPANDMACRO JCLTREEINT(,,,)} +*) (*$JPPDEFINEMACRO JCLTREEITRINT(BASEITRCLASSNAME, PREORDERITRCLASSNAME, POSTORDERITRCLASSNAME, NODETYPENAME, TREECLASSNAME, STDITRINTERFACENAME, TYPENAME, GETTERNAME, SETTERNAME) @@ -373,4 +375,5 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLTREEITRINT(,,,,,,,,)}*) +{$JPPEXPANDMACRO JCLTREEITRINT(,,,,,,,,)} +*) Modified: trunk/help/containers/JclVectors.inc =================================================================== --- trunk/help/containers/JclVectors.inc 2011-08-24 08:02:09 UTC (rev 3591) +++ trunk/help/containers/JclVectors.inc 2011-08-28 12:43:20 UTC (rev 3592) @@ -140,9 +140,10 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLVECTORINT(,,,,)}*) +{$JPPEXPANDMACRO JCLVECTORINT(,,,,)} +*) -(*$JPPDEFINEMACRO JCLVECTORITRINT(SELFCLASSNAME, ITRINTERFACENAME, LISTINTERFACENAME, TYPENAME, GETTERNAME, SETTERNAME) +(*$JPPDEFINEMACRO JCLVECTORITRINT(SELFCLASSNAME, ITRINTERFACENAME, LISTCLASSNAME, TYPENAME, GETTERNAME, SETTERNAME) @@SELFCLASSNAME <copy TJclVectorIterator> \ \ @@ -163,8 +164,8 @@ <copy TJclVectorIterator.AssignPropertiesTo@TJclAbstractIterator> \ \ -@@SELFCLASSNAME.Create@LISTINTERFACENAME@Integer@Boolean@TItrStart -<copy TJclVectorIterator.Create@IJclList@Integer@Boolean@TItrStart> +@@SELFCLASSNAME.Create@LISTCLASSNAME@Integer@Boolean@TItrStart +<copy TJclVectorIterator.Create@TJclVector@Integer@Boolean@TItrStart> \ \ @@SELFCLASSNAME.CreateEmptyIterator @@ -228,4 +229,5 @@ \ \ *) (*$JPPLOOP TRUETYPEINDEX HELPTRUETYPECOUNT -{$JPPEXPANDMACRO JCLVECTORITRINT(,,,,,)}*) +{$JPPEXPANDMACRO JCLVECTORITRINT(,,,,,)} +*) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2011-08-24 08:02:17
|
Revision: 3591 http://jcl.svn.sourceforge.net/jcl/?rev=3591&view=rev Author: obones Date: 2011-08-24 08:02:09 +0000 (Wed, 24 Aug 2011) Log Message: ----------- Reverting 3590, the required files are in JclDeveloperTools (I should learn to read...) Modified Paths: -------------- trunk/jcl/packages/c6/Jcl.bpk trunk/jcl/packages/c6/Jcl.dpk trunk/jcl/packages/cs1/Jcl.dpk trunk/jcl/packages/d10/Jcl.dpk trunk/jcl/packages/d11/Jcl.dpk trunk/jcl/packages/d11/Jcl.dproj trunk/jcl/packages/d12/Jcl.dpk trunk/jcl/packages/d12/Jcl.dproj trunk/jcl/packages/d14/Jcl.dpk trunk/jcl/packages/d14/Jcl.dproj trunk/jcl/packages/d15/Jcl.dpk trunk/jcl/packages/d15/Jcl.dproj trunk/jcl/packages/d6/Jcl.dpk trunk/jcl/packages/d7/Jcl.dpk trunk/jcl/packages/d8/Jcl.dpk trunk/jcl/packages/d9/Jcl.dpk trunk/jcl/packages/xml/Jcl-R.xml Modified: trunk/jcl/packages/c6/Jcl.bpk =================================================================== --- trunk/jcl/packages/c6/Jcl.bpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/c6/Jcl.bpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:31 UTC + Last generated: 17-06-2011 09:43:08 UTC ***************************************************************************** --> <PROJECT> @@ -19,22 +19,17 @@ ..\..\lib\c6\JclAnsiStrings.obj ..\..\lib\c6\JclBase.obj ..\..\lib\c6\JclCharsets.obj - ..\..\lib\c6\JclCompilerUtils.obj ..\..\lib\c6\JclComplex.obj ..\..\lib\c6\JclCompression.obj ..\..\lib\c6\JclCounter.obj ..\..\lib\c6\JclDateTime.obj - ..\..\lib\c6\JclDevToolsResources.obj ..\..\lib\c6\JclExprEval.obj ..\..\lib\c6\JclFileUtils.obj - ..\..\lib\c6\JclHelpUtils.obj - ..\..\lib\c6\JclIDEUtils.obj ..\..\lib\c6\JclIniFiles.obj ..\..\lib\c6\JclLogic.obj ..\..\lib\c6\JclMath.obj ..\..\lib\c6\JclMIDI.obj ..\..\lib\c6\JclMime.obj - ..\..\lib\c6\JclMSBuild.obj ..\..\lib\c6\JclNotify.obj ..\..\lib\c6\JclPCRE.obj ..\..\lib\c6\JclResources.obj @@ -56,7 +51,6 @@ ..\..\lib\c6\JclUnitVersioningProviders.obj ..\..\lib\c6\JclValidation.obj ..\..\lib\c6\JclWideStrings.obj - ..\..\lib\c6\MSHelpServices_TLB.obj ..\..\lib\c6\pcre.obj ..\..\lib\c6\zlibh.obj ..\..\lib\c6\Hardlinks.obj @@ -149,22 +143,17 @@ <FILE FILENAME="..\..\source\common\JclAnsiStrings.pas" FORMNAME="" UNITNAME="JclAnsiStrings" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclBase.pas" FORMNAME="" UNITNAME="JclBase" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclCharsets.pas" FORMNAME="" UNITNAME="JclCharsets" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclCompilerUtils.pas" FORMNAME="" UNITNAME="JclCompilerUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclComplex.pas" FORMNAME="" UNITNAME="JclComplex" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclCompression.pas" FORMNAME="" UNITNAME="JclCompression" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclCounter.pas" FORMNAME="" UNITNAME="JclCounter" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclDateTime.pas" FORMNAME="" UNITNAME="JclDateTime" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclDevToolsResources.pas" FORMNAME="" UNITNAME="JclDevToolsResources" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclExprEval.pas" FORMNAME="" UNITNAME="JclExprEval" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclFileUtils.pas" FORMNAME="" UNITNAME="JclFileUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclHelpUtils.pas" FORMNAME="" UNITNAME="JclHelpUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclIDEUtils.pas" FORMNAME="" UNITNAME="JclIDEUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclIniFiles.pas" FORMNAME="" UNITNAME="JclIniFiles" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclLogic.pas" FORMNAME="" UNITNAME="JclLogic" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclMath.pas" FORMNAME="" UNITNAME="JclMath" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclMIDI.pas" FORMNAME="" UNITNAME="JclMIDI" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclMime.pas" FORMNAME="" UNITNAME="JclMime" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclMSBuild.pas" FORMNAME="" UNITNAME="JclMSBuild" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclNotify.pas" FORMNAME="" UNITNAME="JclNotify" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPCRE.pas" FORMNAME="" UNITNAME="JclPCRE" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclResources.pas" FORMNAME="" UNITNAME="JclResources" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> @@ -186,7 +175,6 @@ <FILE FILENAME="..\..\source\common\JclUnitVersioningProviders.pas" FORMNAME="" UNITNAME="JclUnitVersioningProviders" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclValidation.pas" FORMNAME="" UNITNAME="JclValidation" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclWideStrings.pas" FORMNAME="" UNITNAME="JclWideStrings" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\MSHelpServices_TLB.pas" FORMNAME="" UNITNAME="MSHelpServices_TLB" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\pcre.pas" FORMNAME="" UNITNAME="pcre" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\zlibh.pas" FORMNAME="" UNITNAME="zlibh" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\windows\Hardlinks.pas" FORMNAME="" UNITNAME="Hardlinks" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/c6/Jcl.dpk =================================================================== --- trunk/jcl/packages/c6/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/c6/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:31 UTC + Last generated: 17-06-2011 09:43:09 UTC ----------------------------------------------------------------------------- } @@ -50,22 +50,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -87,7 +82,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/cs1/Jcl.dpk =================================================================== --- trunk/jcl/packages/cs1/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/cs1/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:31 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -49,22 +49,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -86,7 +81,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' ; Modified: trunk/jcl/packages/d10/Jcl.dpk =================================================================== --- trunk/jcl/packages/d10/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d10/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:31 UTC + Last generated: 17-06-2011 09:43:12 UTC ----------------------------------------------------------------------------- } @@ -51,22 +51,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -88,7 +83,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d11/Jcl.dpk =================================================================== --- trunk/jcl/packages/d11/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d11/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:31 UTC + Last generated: 17-06-2011 09:44:13 UTC ----------------------------------------------------------------------------- } @@ -52,22 +52,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -89,7 +84,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d11/Jcl.dproj =================================================================== --- trunk/jcl/packages/d11/Jcl.dproj 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d11/Jcl.dproj 2011-08-24 08:02:09 UTC (rev 3591) @@ -91,22 +91,17 @@ <DCCReference Include="..\..\source\common\JclAnsiStrings.pas"/> <DCCReference Include="..\..\source\common\JclBase.pas"/> <DCCReference Include="..\..\source\common\JclCharsets.pas"/> - <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclComplex.pas"/> <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> - <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> - <DCCReference Include="..\..\source\common\JclHelpUtils.pas"/> - <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> <DCCReference Include="..\..\source\common\JclLogic.pas"/> <DCCReference Include="..\..\source\common\JclMath.pas"/> <DCCReference Include="..\..\source\common\JclMIDI.pas"/> <DCCReference Include="..\..\source\common\JclMime.pas"/> - <DCCReference Include="..\..\source\common\JclMSBuild.pas"/> <DCCReference Include="..\..\source\common\JclNotify.pas"/> <DCCReference Include="..\..\source\common\JclPCRE.pas"/> <DCCReference Include="..\..\source\common\JclResources.pas"/> @@ -128,7 +123,6 @@ <DCCReference Include="..\..\source\common\JclUnitVersioningProviders.pas"/> <DCCReference Include="..\..\source\common\JclValidation.pas"/> <DCCReference Include="..\..\source\common\JclWideStrings.pas"/> - <DCCReference Include="..\..\source\common\MSHelpServices_TLB.pas"/> <DCCReference Include="..\..\source\common\pcre.pas"/> <DCCReference Include="..\..\source\common\zlibh.pas"/> <DCCReference Include="..\..\source\windows\Hardlinks.pas"/> Modified: trunk/jcl/packages/d12/Jcl.dpk =================================================================== --- trunk/jcl/packages/d12/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d12/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:31 UTC + Last generated: 17-06-2011 09:43:13 UTC ----------------------------------------------------------------------------- } @@ -51,22 +51,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -88,7 +83,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d12/Jcl.dproj =================================================================== --- trunk/jcl/packages/d12/Jcl.dproj 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d12/Jcl.dproj 2011-08-24 08:02:09 UTC (rev 3591) @@ -66,22 +66,17 @@ <DCCReference Include="..\..\source\common\JclAnsiStrings.pas"/> <DCCReference Include="..\..\source\common\JclBase.pas"/> <DCCReference Include="..\..\source\common\JclCharsets.pas"/> - <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclComplex.pas"/> <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> - <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> - <DCCReference Include="..\..\source\common\JclHelpUtils.pas"/> - <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> <DCCReference Include="..\..\source\common\JclLogic.pas"/> <DCCReference Include="..\..\source\common\JclMath.pas"/> <DCCReference Include="..\..\source\common\JclMIDI.pas"/> <DCCReference Include="..\..\source\common\JclMime.pas"/> - <DCCReference Include="..\..\source\common\JclMSBuild.pas"/> <DCCReference Include="..\..\source\common\JclNotify.pas"/> <DCCReference Include="..\..\source\common\JclPCRE.pas"/> <DCCReference Include="..\..\source\common\JclResources.pas"/> @@ -103,7 +98,6 @@ <DCCReference Include="..\..\source\common\JclUnitVersioningProviders.pas"/> <DCCReference Include="..\..\source\common\JclValidation.pas"/> <DCCReference Include="..\..\source\common\JclWideStrings.pas"/> - <DCCReference Include="..\..\source\common\MSHelpServices_TLB.pas"/> <DCCReference Include="..\..\source\common\pcre.pas"/> <DCCReference Include="..\..\source\common\zlibh.pas"/> <DCCReference Include="..\..\source\windows\Hardlinks.pas"/> Modified: trunk/jcl/packages/d14/Jcl.dpk =================================================================== --- trunk/jcl/packages/d14/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d14/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:31 UTC + Last generated: 17-06-2011 09:43:14 UTC ----------------------------------------------------------------------------- } @@ -51,22 +51,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -88,7 +83,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d14/Jcl.dproj =================================================================== --- trunk/jcl/packages/d14/Jcl.dproj 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d14/Jcl.dproj 2011-08-24 08:02:09 UTC (rev 3591) @@ -68,22 +68,17 @@ <DCCReference Include="..\..\source\common\JclAnsiStrings.pas"/> <DCCReference Include="..\..\source\common\JclBase.pas"/> <DCCReference Include="..\..\source\common\JclCharsets.pas"/> - <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclComplex.pas"/> <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> - <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> - <DCCReference Include="..\..\source\common\JclHelpUtils.pas"/> - <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> <DCCReference Include="..\..\source\common\JclLogic.pas"/> <DCCReference Include="..\..\source\common\JclMath.pas"/> <DCCReference Include="..\..\source\common\JclMIDI.pas"/> <DCCReference Include="..\..\source\common\JclMime.pas"/> - <DCCReference Include="..\..\source\common\JclMSBuild.pas"/> <DCCReference Include="..\..\source\common\JclNotify.pas"/> <DCCReference Include="..\..\source\common\JclPCRE.pas"/> <DCCReference Include="..\..\source\common\JclResources.pas"/> @@ -105,7 +100,6 @@ <DCCReference Include="..\..\source\common\JclUnitVersioningProviders.pas"/> <DCCReference Include="..\..\source\common\JclValidation.pas"/> <DCCReference Include="..\..\source\common\JclWideStrings.pas"/> - <DCCReference Include="..\..\source\common\MSHelpServices_TLB.pas"/> <DCCReference Include="..\..\source\common\pcre.pas"/> <DCCReference Include="..\..\source\common\zlibh.pas"/> <DCCReference Include="..\..\source\windows\Hardlinks.pas"/> Modified: trunk/jcl/packages/d15/Jcl.dpk =================================================================== --- trunk/jcl/packages/d15/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d15/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:31 UTC + Last generated: 17-06-2011 09:43:14 UTC ----------------------------------------------------------------------------- } @@ -50,22 +50,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -87,7 +82,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d15/Jcl.dproj =================================================================== --- trunk/jcl/packages/d15/Jcl.dproj 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d15/Jcl.dproj 2011-08-24 08:02:09 UTC (rev 3591) @@ -75,22 +75,17 @@ <DCCReference Include="..\..\source\common\JclAnsiStrings.pas"/> <DCCReference Include="..\..\source\common\JclBase.pas"/> <DCCReference Include="..\..\source\common\JclCharsets.pas"/> - <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclComplex.pas"/> <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> - <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> - <DCCReference Include="..\..\source\common\JclHelpUtils.pas"/> - <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> <DCCReference Include="..\..\source\common\JclLogic.pas"/> <DCCReference Include="..\..\source\common\JclMath.pas"/> <DCCReference Include="..\..\source\common\JclMIDI.pas"/> <DCCReference Include="..\..\source\common\JclMime.pas"/> - <DCCReference Include="..\..\source\common\JclMSBuild.pas"/> <DCCReference Include="..\..\source\common\JclNotify.pas"/> <DCCReference Include="..\..\source\common\JclPCRE.pas"/> <DCCReference Include="..\..\source\common\JclResources.pas"/> @@ -112,7 +107,6 @@ <DCCReference Include="..\..\source\common\JclUnitVersioningProviders.pas"/> <DCCReference Include="..\..\source\common\JclValidation.pas"/> <DCCReference Include="..\..\source\common\JclWideStrings.pas"/> - <DCCReference Include="..\..\source\common\MSHelpServices_TLB.pas"/> <DCCReference Include="..\..\source\common\pcre.pas"/> <DCCReference Include="..\..\source\common\zlibh.pas"/> <DCCReference Include="..\..\source\windows\Hardlinks.pas"/> Modified: trunk/jcl/packages/d6/Jcl.dpk =================================================================== --- trunk/jcl/packages/d6/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d6/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:31 UTC + Last generated: 17-06-2011 09:43:09 UTC ----------------------------------------------------------------------------- } @@ -50,22 +50,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -87,7 +82,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d7/Jcl.dpk =================================================================== --- trunk/jcl/packages/d7/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d7/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:32 UTC + Last generated: 17-06-2011 09:43:10 UTC ----------------------------------------------------------------------------- } @@ -50,22 +50,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -87,7 +82,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d8/Jcl.dpk =================================================================== --- trunk/jcl/packages/d8/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d8/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:32 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -49,22 +49,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -86,7 +81,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' ; Modified: trunk/jcl/packages/d9/Jcl.dpk =================================================================== --- trunk/jcl/packages/d9/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/d9/Jcl.dpk 2011-08-24 08:02:09 UTC (rev 3591) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 24-08-2011 07:52:32 UTC + Last generated: 17-06-2011 09:43:11 UTC ----------------------------------------------------------------------------- } @@ -50,22 +50,17 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , - JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , - JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , - JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , - JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -87,7 +82,6 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , - MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/xml/Jcl-R.xml =================================================================== --- trunk/jcl/packages/xml/Jcl-R.xml 2011-08-24 07:57:29 UTC (rev 3590) +++ trunk/jcl/packages/xml/Jcl-R.xml 2011-08-24 08:02:09 UTC (rev 3591) @@ -39,22 +39,17 @@ <File Name="..\..\source\common\JclAnsiStrings.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclBase.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclCharsets.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclCompilerUtils.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\JclComplex.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclCompression.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclCounter.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclDateTime.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclDevToolsResources.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\JclExprEval.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclFileUtils.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclHelpUtils.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> - <File Name="..\..\source\common\JclIDEUtils.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\JclIniFiles.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclLogic.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclMath.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclMIDI.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclMime.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclMSBuild.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\JclNotify.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPCRE.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclResources.pas" Targets="all" Formname="" Condition=""/> @@ -76,7 +71,6 @@ <File Name="..\..\source\common\JclUnitVersioningProviders.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclValidation.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclWideStrings.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\MSHelpServices_TLB.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\pcre.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\zlibh.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\include\crossplatform.inc" Targets="help" Formname="" Condition=""/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2011-08-24 07:57:37
|
Revision: 3590 http://jcl.svn.sourceforge.net/jcl/?rev=3590&view=rev Author: obones Date: 2011-08-24 07:57:29 +0000 (Wed, 24 Aug 2011) Log Message: ----------- Added required files for windows based third party libraries Modified Paths: -------------- trunk/jcl/packages/c6/Jcl.bpk trunk/jcl/packages/c6/Jcl.dpk trunk/jcl/packages/cs1/Jcl.dpk trunk/jcl/packages/d10/Jcl.dpk trunk/jcl/packages/d11/Jcl.dpk trunk/jcl/packages/d11/Jcl.dproj trunk/jcl/packages/d12/Jcl.dpk trunk/jcl/packages/d12/Jcl.dproj trunk/jcl/packages/d14/Jcl.dpk trunk/jcl/packages/d14/Jcl.dproj trunk/jcl/packages/d15/Jcl.dpk trunk/jcl/packages/d15/Jcl.dproj trunk/jcl/packages/d6/Jcl.dpk trunk/jcl/packages/d7/Jcl.dpk trunk/jcl/packages/d8/Jcl.dpk trunk/jcl/packages/d9/Jcl.dpk trunk/jcl/packages/xml/Jcl-R.xml Modified: trunk/jcl/packages/c6/Jcl.bpk =================================================================== --- trunk/jcl/packages/c6/Jcl.bpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/c6/Jcl.bpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:43:08 UTC + Last generated: 24-08-2011 07:52:31 UTC ***************************************************************************** --> <PROJECT> @@ -19,17 +19,22 @@ ..\..\lib\c6\JclAnsiStrings.obj ..\..\lib\c6\JclBase.obj ..\..\lib\c6\JclCharsets.obj + ..\..\lib\c6\JclCompilerUtils.obj ..\..\lib\c6\JclComplex.obj ..\..\lib\c6\JclCompression.obj ..\..\lib\c6\JclCounter.obj ..\..\lib\c6\JclDateTime.obj + ..\..\lib\c6\JclDevToolsResources.obj ..\..\lib\c6\JclExprEval.obj ..\..\lib\c6\JclFileUtils.obj + ..\..\lib\c6\JclHelpUtils.obj + ..\..\lib\c6\JclIDEUtils.obj ..\..\lib\c6\JclIniFiles.obj ..\..\lib\c6\JclLogic.obj ..\..\lib\c6\JclMath.obj ..\..\lib\c6\JclMIDI.obj ..\..\lib\c6\JclMime.obj + ..\..\lib\c6\JclMSBuild.obj ..\..\lib\c6\JclNotify.obj ..\..\lib\c6\JclPCRE.obj ..\..\lib\c6\JclResources.obj @@ -51,6 +56,7 @@ ..\..\lib\c6\JclUnitVersioningProviders.obj ..\..\lib\c6\JclValidation.obj ..\..\lib\c6\JclWideStrings.obj + ..\..\lib\c6\MSHelpServices_TLB.obj ..\..\lib\c6\pcre.obj ..\..\lib\c6\zlibh.obj ..\..\lib\c6\Hardlinks.obj @@ -143,17 +149,22 @@ <FILE FILENAME="..\..\source\common\JclAnsiStrings.pas" FORMNAME="" UNITNAME="JclAnsiStrings" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclBase.pas" FORMNAME="" UNITNAME="JclBase" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclCharsets.pas" FORMNAME="" UNITNAME="JclCharsets" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\common\JclCompilerUtils.pas" FORMNAME="" UNITNAME="JclCompilerUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclComplex.pas" FORMNAME="" UNITNAME="JclComplex" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclCompression.pas" FORMNAME="" UNITNAME="JclCompression" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclCounter.pas" FORMNAME="" UNITNAME="JclCounter" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclDateTime.pas" FORMNAME="" UNITNAME="JclDateTime" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\common\JclDevToolsResources.pas" FORMNAME="" UNITNAME="JclDevToolsResources" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclExprEval.pas" FORMNAME="" UNITNAME="JclExprEval" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclFileUtils.pas" FORMNAME="" UNITNAME="JclFileUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\common\JclHelpUtils.pas" FORMNAME="" UNITNAME="JclHelpUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\common\JclIDEUtils.pas" FORMNAME="" UNITNAME="JclIDEUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclIniFiles.pas" FORMNAME="" UNITNAME="JclIniFiles" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclLogic.pas" FORMNAME="" UNITNAME="JclLogic" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclMath.pas" FORMNAME="" UNITNAME="JclMath" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclMIDI.pas" FORMNAME="" UNITNAME="JclMIDI" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclMime.pas" FORMNAME="" UNITNAME="JclMime" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\common\JclMSBuild.pas" FORMNAME="" UNITNAME="JclMSBuild" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclNotify.pas" FORMNAME="" UNITNAME="JclNotify" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPCRE.pas" FORMNAME="" UNITNAME="JclPCRE" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclResources.pas" FORMNAME="" UNITNAME="JclResources" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> @@ -175,6 +186,7 @@ <FILE FILENAME="..\..\source\common\JclUnitVersioningProviders.pas" FORMNAME="" UNITNAME="JclUnitVersioningProviders" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclValidation.pas" FORMNAME="" UNITNAME="JclValidation" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclWideStrings.pas" FORMNAME="" UNITNAME="JclWideStrings" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\common\MSHelpServices_TLB.pas" FORMNAME="" UNITNAME="MSHelpServices_TLB" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\pcre.pas" FORMNAME="" UNITNAME="pcre" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\zlibh.pas" FORMNAME="" UNITNAME="zlibh" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\windows\Hardlinks.pas" FORMNAME="" UNITNAME="Hardlinks" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/c6/Jcl.dpk =================================================================== --- trunk/jcl/packages/c6/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/c6/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:43:09 UTC + Last generated: 24-08-2011 07:52:31 UTC ----------------------------------------------------------------------------- } @@ -50,17 +50,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -82,6 +87,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/cs1/Jcl.dpk =================================================================== --- trunk/jcl/packages/cs1/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/cs1/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:46:59 UTC + Last generated: 24-08-2011 07:52:31 UTC ----------------------------------------------------------------------------- } @@ -49,17 +49,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -81,6 +86,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' ; Modified: trunk/jcl/packages/d10/Jcl.dpk =================================================================== --- trunk/jcl/packages/d10/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d10/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:43:12 UTC + Last generated: 24-08-2011 07:52:31 UTC ----------------------------------------------------------------------------- } @@ -51,17 +51,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -83,6 +88,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d11/Jcl.dpk =================================================================== --- trunk/jcl/packages/d11/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d11/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:44:13 UTC + Last generated: 24-08-2011 07:52:31 UTC ----------------------------------------------------------------------------- } @@ -52,17 +52,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -84,6 +89,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d11/Jcl.dproj =================================================================== --- trunk/jcl/packages/d11/Jcl.dproj 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d11/Jcl.dproj 2011-08-24 07:57:29 UTC (rev 3590) @@ -91,17 +91,22 @@ <DCCReference Include="..\..\source\common\JclAnsiStrings.pas"/> <DCCReference Include="..\..\source\common\JclBase.pas"/> <DCCReference Include="..\..\source\common\JclCharsets.pas"/> + <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclComplex.pas"/> <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> + <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> + <DCCReference Include="..\..\source\common\JclHelpUtils.pas"/> + <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> <DCCReference Include="..\..\source\common\JclLogic.pas"/> <DCCReference Include="..\..\source\common\JclMath.pas"/> <DCCReference Include="..\..\source\common\JclMIDI.pas"/> <DCCReference Include="..\..\source\common\JclMime.pas"/> + <DCCReference Include="..\..\source\common\JclMSBuild.pas"/> <DCCReference Include="..\..\source\common\JclNotify.pas"/> <DCCReference Include="..\..\source\common\JclPCRE.pas"/> <DCCReference Include="..\..\source\common\JclResources.pas"/> @@ -123,6 +128,7 @@ <DCCReference Include="..\..\source\common\JclUnitVersioningProviders.pas"/> <DCCReference Include="..\..\source\common\JclValidation.pas"/> <DCCReference Include="..\..\source\common\JclWideStrings.pas"/> + <DCCReference Include="..\..\source\common\MSHelpServices_TLB.pas"/> <DCCReference Include="..\..\source\common\pcre.pas"/> <DCCReference Include="..\..\source\common\zlibh.pas"/> <DCCReference Include="..\..\source\windows\Hardlinks.pas"/> Modified: trunk/jcl/packages/d12/Jcl.dpk =================================================================== --- trunk/jcl/packages/d12/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d12/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:43:13 UTC + Last generated: 24-08-2011 07:52:31 UTC ----------------------------------------------------------------------------- } @@ -51,17 +51,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -83,6 +88,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d12/Jcl.dproj =================================================================== --- trunk/jcl/packages/d12/Jcl.dproj 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d12/Jcl.dproj 2011-08-24 07:57:29 UTC (rev 3590) @@ -66,17 +66,22 @@ <DCCReference Include="..\..\source\common\JclAnsiStrings.pas"/> <DCCReference Include="..\..\source\common\JclBase.pas"/> <DCCReference Include="..\..\source\common\JclCharsets.pas"/> + <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclComplex.pas"/> <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> + <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> + <DCCReference Include="..\..\source\common\JclHelpUtils.pas"/> + <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> <DCCReference Include="..\..\source\common\JclLogic.pas"/> <DCCReference Include="..\..\source\common\JclMath.pas"/> <DCCReference Include="..\..\source\common\JclMIDI.pas"/> <DCCReference Include="..\..\source\common\JclMime.pas"/> + <DCCReference Include="..\..\source\common\JclMSBuild.pas"/> <DCCReference Include="..\..\source\common\JclNotify.pas"/> <DCCReference Include="..\..\source\common\JclPCRE.pas"/> <DCCReference Include="..\..\source\common\JclResources.pas"/> @@ -98,6 +103,7 @@ <DCCReference Include="..\..\source\common\JclUnitVersioningProviders.pas"/> <DCCReference Include="..\..\source\common\JclValidation.pas"/> <DCCReference Include="..\..\source\common\JclWideStrings.pas"/> + <DCCReference Include="..\..\source\common\MSHelpServices_TLB.pas"/> <DCCReference Include="..\..\source\common\pcre.pas"/> <DCCReference Include="..\..\source\common\zlibh.pas"/> <DCCReference Include="..\..\source\windows\Hardlinks.pas"/> Modified: trunk/jcl/packages/d14/Jcl.dpk =================================================================== --- trunk/jcl/packages/d14/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d14/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:43:14 UTC + Last generated: 24-08-2011 07:52:31 UTC ----------------------------------------------------------------------------- } @@ -51,17 +51,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -83,6 +88,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d14/Jcl.dproj =================================================================== --- trunk/jcl/packages/d14/Jcl.dproj 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d14/Jcl.dproj 2011-08-24 07:57:29 UTC (rev 3590) @@ -68,17 +68,22 @@ <DCCReference Include="..\..\source\common\JclAnsiStrings.pas"/> <DCCReference Include="..\..\source\common\JclBase.pas"/> <DCCReference Include="..\..\source\common\JclCharsets.pas"/> + <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclComplex.pas"/> <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> + <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> + <DCCReference Include="..\..\source\common\JclHelpUtils.pas"/> + <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> <DCCReference Include="..\..\source\common\JclLogic.pas"/> <DCCReference Include="..\..\source\common\JclMath.pas"/> <DCCReference Include="..\..\source\common\JclMIDI.pas"/> <DCCReference Include="..\..\source\common\JclMime.pas"/> + <DCCReference Include="..\..\source\common\JclMSBuild.pas"/> <DCCReference Include="..\..\source\common\JclNotify.pas"/> <DCCReference Include="..\..\source\common\JclPCRE.pas"/> <DCCReference Include="..\..\source\common\JclResources.pas"/> @@ -100,6 +105,7 @@ <DCCReference Include="..\..\source\common\JclUnitVersioningProviders.pas"/> <DCCReference Include="..\..\source\common\JclValidation.pas"/> <DCCReference Include="..\..\source\common\JclWideStrings.pas"/> + <DCCReference Include="..\..\source\common\MSHelpServices_TLB.pas"/> <DCCReference Include="..\..\source\common\pcre.pas"/> <DCCReference Include="..\..\source\common\zlibh.pas"/> <DCCReference Include="..\..\source\windows\Hardlinks.pas"/> Modified: trunk/jcl/packages/d15/Jcl.dpk =================================================================== --- trunk/jcl/packages/d15/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d15/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:43:14 UTC + Last generated: 24-08-2011 07:52:31 UTC ----------------------------------------------------------------------------- } @@ -50,17 +50,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -82,6 +87,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d15/Jcl.dproj =================================================================== --- trunk/jcl/packages/d15/Jcl.dproj 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d15/Jcl.dproj 2011-08-24 07:57:29 UTC (rev 3590) @@ -75,17 +75,22 @@ <DCCReference Include="..\..\source\common\JclAnsiStrings.pas"/> <DCCReference Include="..\..\source\common\JclBase.pas"/> <DCCReference Include="..\..\source\common\JclCharsets.pas"/> + <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclComplex.pas"/> <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> + <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> + <DCCReference Include="..\..\source\common\JclHelpUtils.pas"/> + <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> <DCCReference Include="..\..\source\common\JclLogic.pas"/> <DCCReference Include="..\..\source\common\JclMath.pas"/> <DCCReference Include="..\..\source\common\JclMIDI.pas"/> <DCCReference Include="..\..\source\common\JclMime.pas"/> + <DCCReference Include="..\..\source\common\JclMSBuild.pas"/> <DCCReference Include="..\..\source\common\JclNotify.pas"/> <DCCReference Include="..\..\source\common\JclPCRE.pas"/> <DCCReference Include="..\..\source\common\JclResources.pas"/> @@ -107,6 +112,7 @@ <DCCReference Include="..\..\source\common\JclUnitVersioningProviders.pas"/> <DCCReference Include="..\..\source\common\JclValidation.pas"/> <DCCReference Include="..\..\source\common\JclWideStrings.pas"/> + <DCCReference Include="..\..\source\common\MSHelpServices_TLB.pas"/> <DCCReference Include="..\..\source\common\pcre.pas"/> <DCCReference Include="..\..\source\common\zlibh.pas"/> <DCCReference Include="..\..\source\windows\Hardlinks.pas"/> Modified: trunk/jcl/packages/d6/Jcl.dpk =================================================================== --- trunk/jcl/packages/d6/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d6/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:43:09 UTC + Last generated: 24-08-2011 07:52:31 UTC ----------------------------------------------------------------------------- } @@ -50,17 +50,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -82,6 +87,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d7/Jcl.dpk =================================================================== --- trunk/jcl/packages/d7/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d7/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:43:10 UTC + Last generated: 24-08-2011 07:52:32 UTC ----------------------------------------------------------------------------- } @@ -50,17 +50,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -82,6 +87,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/d8/Jcl.dpk =================================================================== --- trunk/jcl/packages/d8/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d8/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:46:59 UTC + Last generated: 24-08-2011 07:52:32 UTC ----------------------------------------------------------------------------- } @@ -49,17 +49,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -81,6 +86,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' ; Modified: trunk/jcl/packages/d9/Jcl.dpk =================================================================== --- trunk/jcl/packages/d9/Jcl.dpk 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/d9/Jcl.dpk 2011-08-24 07:57:29 UTC (rev 3590) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 17-06-2011 09:43:11 UTC + Last generated: 24-08-2011 07:52:32 UTC ----------------------------------------------------------------------------- } @@ -50,17 +50,22 @@ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' , JclBase in '..\..\source\common\JclBase.pas' , JclCharsets in '..\..\source\common\JclCharsets.pas' , + JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclComplex in '..\..\source\common\JclComplex.pas' , JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , + JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , + JclHelpUtils in '..\..\source\common\JclHelpUtils.pas' , + JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , JclLogic in '..\..\source\common\JclLogic.pas' , JclMath in '..\..\source\common\JclMath.pas' , JclMIDI in '..\..\source\common\JclMIDI.pas' , JclMime in '..\..\source\common\JclMime.pas' , + JclMSBuild in '..\..\source\common\JclMSBuild.pas' , JclNotify in '..\..\source\common\JclNotify.pas' , JclPCRE in '..\..\source\common\JclPCRE.pas' , JclResources in '..\..\source\common\JclResources.pas' , @@ -82,6 +87,7 @@ JclUnitVersioningProviders in '..\..\source\common\JclUnitVersioningProviders.pas' , JclValidation in '..\..\source\common\JclValidation.pas' , JclWideStrings in '..\..\source\common\JclWideStrings.pas' , + MSHelpServices_TLB in '..\..\source\common\MSHelpServices_TLB.pas' , pcre in '..\..\source\common\pcre.pas' , zlibh in '..\..\source\common\zlibh.pas' , Hardlinks in '..\..\source\windows\Hardlinks.pas' , Modified: trunk/jcl/packages/xml/Jcl-R.xml =================================================================== --- trunk/jcl/packages/xml/Jcl-R.xml 2011-08-24 06:49:51 UTC (rev 3589) +++ trunk/jcl/packages/xml/Jcl-R.xml 2011-08-24 07:57:29 UTC (rev 3590) @@ -39,17 +39,22 @@ <File Name="..\..\source\common\JclAnsiStrings.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclBase.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclCharsets.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclCompilerUtils.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\JclComplex.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclCompression.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclCounter.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclDateTime.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclDevToolsResources.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\JclExprEval.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclFileUtils.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclHelpUtils.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> + <File Name="..\..\source\common\JclIDEUtils.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\JclIniFiles.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclLogic.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclMath.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclMIDI.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclMime.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclMSBuild.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\JclNotify.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPCRE.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclResources.pas" Targets="all" Formname="" Condition=""/> @@ -71,6 +76,7 @@ <File Name="..\..\source\common\JclUnitVersioningProviders.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclValidation.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclWideStrings.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\MSHelpServices_TLB.pas" Targets="Delphi,Bcb,Bds" Formname="" Condition=""/> <File Name="..\..\source\common\pcre.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\zlibh.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\include\crossplatform.inc" Targets="help" Formname="" Condition=""/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-24 06:49:57
|
Revision: 3589 http://jcl.svn.sourceforge.net/jcl/?rev=3589&view=rev Author: outchy Date: 2011-08-24 06:49:51 +0000 (Wed, 24 Aug 2011) Log Message: ----------- Bug from Olivier in the newsgroups: all IDE settings are destroyed by revision 3580. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=3580&view=rev Modified Paths: -------------- trunk/jcl/source/windows/JclMsBuild.pas Modified: trunk/jcl/source/windows/JclMsBuild.pas =================================================================== --- trunk/jcl/source/windows/JclMsBuild.pas 2011-08-19 14:07:02 UTC (rev 3588) +++ trunk/jcl/source/windows/JclMsBuild.pas 2011-08-24 06:49:51 UTC (rev 3589) @@ -23,7 +23,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -332,8 +332,10 @@ procedure InitEnvironmentProperties; procedure InitReservedProperties; - // do not encode ' + // encode just <, > and & procedure XMLEncodeValue(Sender: TObject; var Value: string); + // decode all entities + procedure XMLDecodeValue(Sender: TObject; var Value: string); property CurrentFileName: TFileName read FCurrentFileName; property ProjectFileName: TFileName read FProjectFileName; @@ -824,6 +826,7 @@ try AXml.Options := AXml.Options - [sxoAutoEncodeValue,sxoAutoEncodeEntity]; AXml.OnEncodeValue := XMLEncodeValue; + AXml.OnDecodeValue := XMLDecodeValue; AXml.LoadFromFile(AFileName, Encoding, CodePage); except AXml.Free; @@ -1791,6 +1794,7 @@ SubXml := TJclSimpleXML.Create; SubXml.Options := SubXml.Options - [sxoAutoEncodeValue,sxoAutoEncodeEntity]; SubXml.OnEncodeValue := XMLEncodeValue; + SubXml.OnDecodeValue := XMLDecodeValue; SubXml.LoadFromFile(Project); SubOwnsXml := True; end; @@ -2604,10 +2608,16 @@ Xml.SaveToFile(ProjectFileName); end; +procedure TJclMsBuildParser.XMLDecodeValue(Sender: TObject; var Value: string); +begin + Value := XMLDecode(Value); +end; + procedure TJclMsBuildParser.XMLEncodeValue(Sender: TObject; var Value: string); begin - Value := SimpleXMLEncode(Value); - StrReplace(Value, ''', NativeSingleQuote, [rfReplaceAll]); + StrReplace(Value, '&', '&', [rfReplaceAll]); + StrReplace(Value, '<', '<', [rfReplaceAll]); + StrReplace(Value, '>', '>', [rfReplaceAll]); end; {$IFDEF UNITVERSIONING} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2011-08-19 14:07:08
|
Revision: 3588 http://jcl.svn.sourceforge.net/jcl/?rev=3588&view=rev Author: obones Date: 2011-08-19 14:07:02 +0000 (Fri, 19 Aug 2011) Log Message: ----------- As indicated in the newsgroups, using string was not compatible with all versions, so we use WideString as everywhere else in the JCL Modified Paths: -------------- trunk/jcl/source/windows/JclAppInst.pas Modified: trunk/jcl/source/windows/JclAppInst.pas =================================================================== --- trunk/jcl/source/windows/JclAppInst.pas 2011-08-18 05:42:53 UTC (rev 3587) +++ trunk/jcl/source/windows/JclAppInst.pas 2011-08-19 14:07:02 UTC (rev 3588) @@ -562,7 +562,7 @@ SID: PSID; SecurityAttributes: PSecurityAttributes; SecurityDescriptor: PSecurityDescriptor; - UserName, GroupName: string; + UserName, GroupName: WideString; begin UserInfo := nil; ACL := nil; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-18 05:43:00
|
Revision: 3587 http://jcl.svn.sourceforge.net/jcl/?rev=3587&view=rev Author: outchy Date: 2011-08-18 05:42:53 +0000 (Thu, 18 Aug 2011) Log Message: ----------- Mantis 5092: GetDomainName returns local computer name in workgroup. New function to get workgroup name. Modified Paths: -------------- trunk/jcl/source/common/JclResources.pas trunk/jcl/source/common/JclSysInfo.pas trunk/jcl/source/prototypes/JclWin32.pas trunk/jcl/source/windows/JclWin32.pas Added Paths: ----------- trunk/jcl/source/prototypes/win32api/Lmwksta.imp trunk/jcl/source/prototypes/win32api/Lmwksta.int Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2011-08-17 21:16:26 UTC (rev 3586) +++ trunk/jcl/source/common/JclResources.pas 2011-08-18 05:42:53 UTC (rev 3587) @@ -38,7 +38,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -1955,6 +1955,7 @@ RsProductTypeWebEdition = 'Web Edition'; RsEOpenGLInfo = 'GetOpenGLVersion: %s failed'; + RsENetWkstaGetInfo = 'NetWkstaGetInfo failed'; {$IFDEF MSWINDOWS} RsSPInfo = 'SP%u'; Modified: trunk/jcl/source/common/JclSysInfo.pas =================================================================== --- trunk/jcl/source/common/JclSysInfo.pas 2011-08-17 21:16:26 UTC (rev 3586) +++ trunk/jcl/source/common/JclSysInfo.pas 2011-08-18 05:42:53 UTC (rev 3587) @@ -190,6 +190,7 @@ function GetLocalUserName: string; {$IFDEF MSWINDOWS} function GetUserDomainName(const CurUser: string): string; +function GetWorkGroupName: WideString; {$ENDIF MSWINDOWS} function GetDomainName: string; {$IFDEF MSWINDOWS} @@ -2279,6 +2280,18 @@ end; end; +function GetWorkGroupName: WideString; +var + WkstaInfo: PByte; + WkstaInfo100: PWKSTA_INFO_100; +begin + if NetWkstaGetInfo(nil, 100, WkstaInfo) <> NERR_Success then + raise EJclWin32Error.CreateRes(@RsENetWkstaGetInfo); + WkstaInfo100 := PWKSTA_INFO_100(WkstaInfo); + Result := WideString(PWideChar(WkstaInfo100^.wki100_langroup)); + NetApiBufferFree(Pointer(WkstaInfo)); +end; + {$ENDIF MSWINDOWS} function GetDomainName: string; {$IFDEF UNIX} Modified: trunk/jcl/source/prototypes/JclWin32.pas =================================================================== --- trunk/jcl/source/prototypes/JclWin32.pas 2011-08-17 21:16:26 UTC (rev 3586) +++ trunk/jcl/source/prototypes/JclWin32.pas 2011-08-18 05:42:53 UTC (rev 3587) @@ -119,6 +119,7 @@ {$I win32api\LmCons.int} {$I win32api\LmAccess.int} {$I win32api\LmApiBuf.int} +{$I win32api\Lmwksta.int} {$I win32api\Nb30.int} {$I win32api\RasDlg.int} {$I win32api\Reason.int} @@ -280,6 +281,7 @@ {$I win32api\ImageHlp.imp} {$I win32api\LmAccess.imp} {$I win32api\LmApiBuf.imp} +{$I win32api\Lmwksta.imp} {$I win32api\Nb30.imp} {$I win32api\WinBase.imp} {$I win32api\WinNLS.imp} Added: trunk/jcl/source/prototypes/win32api/Lmwksta.imp =================================================================== --- trunk/jcl/source/prototypes/win32api/Lmwksta.imp (rev 0) +++ trunk/jcl/source/prototypes/win32api/Lmwksta.imp 2011-08-18 05:42:53 UTC (rev 3587) @@ -0,0 +1,15 @@ +{$IFDEF MSWINDOWS} + +type + TNetWkstaGetInfo = function (servername: PWideChar; level: DWORD; out bufptr: PByte): NET_API_STATUS; stdcall; + +var + _NetWkstaGetInfo: TNetWkstaGetInfo = nil; + +function NetWkstaGetInfo(servername: PWideChar; level: DWORD; out bufptr: PByte): NET_API_STATUS; stdcall; +begin + GetProcedureAddress(Pointer(@_NetWkstaGetInfo), netapi32, 'NetWkstaGetInfo'); + Result := _NetWkstaGetInfo(servername, level, bufptr); +end; + +{$ENDIF MSWINDOWS} Property changes on: trunk/jcl/source/prototypes/win32api/Lmwksta.imp ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/source/prototypes/win32api/Lmwksta.int =================================================================== --- trunk/jcl/source/prototypes/win32api/Lmwksta.int (rev 0) +++ trunk/jcl/source/prototypes/win32api/Lmwksta.int 2011-08-18 05:42:53 UTC (rev 3587) @@ -0,0 +1,20 @@ +{$IFDEF MSWINDOWS} +type + _WKSTA_INFO_100 = record + wki100_platform_id: DWORD; + wki100_computername: LMSTR; + wki100_langroup: LMSTR; + wki100_ver_major: DWORD; + wki100_ver_minor: DWORD; + end; + {$EXTERNALSYM _WKSTA_INFO_100} + WKSTA_INFO_100 = _WKSTA_INFO_100; + {$EXTERNALSYM WKSTA_INFO_100} + PWKSTA_INFO_100 = ^_WKSTA_INFO_100; + {$EXTERNALSYM PWKSTA_INFO_100} + LPWKSTA_INFO_100 = ^_WKSTA_INFO_100; + {$EXTERNALSYM LPWKSTA_INFO_100} + +function NetWkstaGetInfo(servername: PWideChar; level: DWORD; out bufptr: PByte): NET_API_STATUS; stdcall; +{$EXTERNALSYM NetWkstaGetInfo} +{$ENDIF MSWINDOWS} Property changes on: trunk/jcl/source/prototypes/win32api/Lmwksta.int ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/jcl/source/windows/JclWin32.pas =================================================================== --- trunk/jcl/source/windows/JclWin32.pas 2011-08-17 21:16:26 UTC (rev 3586) +++ trunk/jcl/source/windows/JclWin32.pas 2011-08-18 05:42:53 UTC (rev 3587) @@ -5041,6 +5041,25 @@ function NetApiBufferFree(Buffer: Pointer): NET_API_STATUS; stdcall; {$EXTERNALSYM NetApiBufferFree} +type + _WKSTA_INFO_100 = record + wki100_platform_id: DWORD; + wki100_computername: LMSTR; + wki100_langroup: LMSTR; + wki100_ver_major: DWORD; + wki100_ver_minor: DWORD; + end; + {$EXTERNALSYM _WKSTA_INFO_100} + WKSTA_INFO_100 = _WKSTA_INFO_100; + {$EXTERNALSYM WKSTA_INFO_100} + PWKSTA_INFO_100 = ^_WKSTA_INFO_100; + {$EXTERNALSYM PWKSTA_INFO_100} + LPWKSTA_INFO_100 = ^_WKSTA_INFO_100; + {$EXTERNALSYM LPWKSTA_INFO_100} + +function NetWkstaGetInfo(servername: PWideChar; level: DWORD; out bufptr: PByte): NET_API_STATUS; stdcall; +{$EXTERNALSYM NetWkstaGetInfo} + (**************************************************************** * * * Data structure templates * @@ -8235,6 +8254,20 @@ type + TNetWkstaGetInfo = function (servername: PWideChar; level: DWORD; out bufptr: PByte): NET_API_STATUS; stdcall; + +var + _NetWkstaGetInfo: TNetWkstaGetInfo = nil; + +function NetWkstaGetInfo(servername: PWideChar; level: DWORD; out bufptr: PByte): NET_API_STATUS; stdcall; +begin + GetProcedureAddress(Pointer(@_NetWkstaGetInfo), netapi32, 'NetWkstaGetInfo'); + Result := _NetWkstaGetInfo(servername, level, bufptr); +end; + + + +type TNetbios = function (pncb: PNCB): UCHAR; stdcall; var _Netbios: TNetbios = nil; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-17 21:16:34
|
Revision: 3586 http://jcl.svn.sourceforge.net/jcl/?rev=3586&view=rev Author: outchy Date: 2011-08-17 21:16:26 +0000 (Wed, 17 Aug 2011) Log Message: ----------- Mantis 5184: JclAppInst enters an infinite loop in certain circumstances. TJclAppInstances now use 3 pools for counting and registering applications: global pool, user pool and session pool. For the global and the session pool, the memory mapped file can now be accessed by all users. For the user session pool, only the current user can read/write the MMF. Modified Paths: -------------- trunk/jcl/source/prototypes/win32api/WinBase.imp trunk/jcl/source/prototypes/win32api/WinBase.int trunk/jcl/source/windows/JclAppInst.pas trunk/jcl/source/windows/JclWin32.pas Modified: trunk/jcl/source/prototypes/win32api/WinBase.imp =================================================================== --- trunk/jcl/source/prototypes/win32api/WinBase.imp 2011-08-14 14:22:18 UTC (rev 3585) +++ trunk/jcl/source/prototypes/win32api/WinBase.imp 2011-08-17 21:16:26 UTC (rev 3586) @@ -283,7 +283,7 @@ end; type - TSetExtendedFeaturesMask = procedure (ContextEx: PCONTEXT_EX; const FeatureMask: Int64); + TSetExtendedFeaturesMask = procedure (ContextEx: PCONTEXT_EX; const FeatureMask: Int64); stdcall; var _SetExtendedFeaturesMask: TSetExtendedFeaturesMask = nil; @@ -294,4 +294,16 @@ _SetExtendedFeaturesMask(ContextEx, FeatureMask); end; +type + TProcessIdToSessionId = function (dwProcessId: DWORD; out dwSessionId: DWORD): BOOL; stdcall; + +var + _ProcessIdToSessionId: TProcessIdToSessionId = nil; + +function ProcessIdToSessionId(dwProcessId: DWORD; out dwSessionId: DWORD): BOOL; +begin + GetProcedureAddress(Pointer(@_ProcessIdToSessionId), kernel32, 'ProcessIdToSessionId'); + Result := _ProcessIdToSessionId(dwProcessId, dwSessionId); +end; + {$ENDIF MSWINDOWS} Modified: trunk/jcl/source/prototypes/win32api/WinBase.int =================================================================== --- trunk/jcl/source/prototypes/win32api/WinBase.int 2011-08-14 14:22:18 UTC (rev 3585) +++ trunk/jcl/source/prototypes/win32api/WinBase.int 2011-08-17 21:16:26 UTC (rev 3586) @@ -176,7 +176,10 @@ function LocateLegacyContext(ContextEx: PCONTEXT_EX; Length: PDWORD): PCONTEXT; stdcall; {$EXTERNALSYM LocateLegacyContext} -procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: Int64); +procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: Int64); stdcall; {$EXTERNALSYM SetExtendedFeaturesMask} +function ProcessIdToSessionId(dwProcessId: DWORD; out dwSessionId: DWORD): BOOL; stdcall; +{$EXTERNALSYM ProcessIdToSessionId} + {$ENDIF MSWINDOWS} Modified: trunk/jcl/source/windows/JclAppInst.pas =================================================================== --- trunk/jcl/source/windows/JclAppInst.pas 2011-08-14 14:22:18 UTC (rev 3585) +++ trunk/jcl/source/windows/JclAppInst.pas 2011-08-17 21:16:26 UTC (rev 3586) @@ -48,7 +48,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} Windows, Classes, Messages, - JclFileUtils, JclSynch; + JclBase, JclFileUtils, JclSynch, JclWin32; // Message constants and types type @@ -67,18 +67,46 @@ TJclAppInstances = class(TObject) private FCPID: DWORD; - FMapping: TJclSwapFileMapping; - FMappingView: TJclFileMappingView; + FAllMapping: TJclSwapFileMapping; + FAllMappingView: TJclFileMappingView; + FSessionMapping: TJclSwapFileMapping; + FSessionMappingView: TJclFileMappingView; + FUserMapping: TJclSwapFileMapping; + FUserMappingView: TJclFileMappingView; FMessageID: DWORD; FOptex: TJclOptex; - function GetAppWnds(Index: Integer): THandle; - function GetInstanceCount: Integer; - function GetProcessIDs(Index: Integer): DWORD; - function GetInstanceIndex(ProcessID: DWORD): Integer; + FUniqueAppID: string; + function GetAllAppWnds(Index: Integer): THandle; + function GetAllInstanceCount: Integer; + function GetAllInstanceIndex(ProcessID: DWORD): Integer; + function GetAllProcessIDs(Index: Integer): DWORD; + function GetInstanceCount(MappingView: TJclFileMappingView): Integer; + function GetInstanceIndex(MappingView: TJclFileMappingView; ProcessID: DWORD): Integer; + function GetProcessIDs(MappingView: TJclFileMappingView; Index: Integer): DWORD; + function GetSessionAppWnds(Index: Integer): THandle; + function GetSessionInstanceCount: Integer; + function GetSessionInstanceIndex(ProcessID: DWORD): Integer; + function GetSessionProcessIDs(Index: Integer): DWORD; + function GetUserAppWnds(Index: Integer): THandle; + function GetUserInstanceCount: Integer; + function GetUserInstanceIndex(ProcessID: DWORD): Integer; + function GetUserProcessIDs(Index: Integer): DWORD; protected procedure InitData; + procedure InitAllData; + procedure InitSessionData; + procedure InitUserData; procedure NotifyInstances(const W, L: Longint); - procedure RemoveInstance; + procedure RemoveInstance(MappingView: TJclFileMappingView); + procedure SecurityFree(UserInfo: PTokenUser; SID: PSID; ACL: PACL; + SecurityDescriptor: PSecurityDescriptor; SecurityAttributes: PSecurityAttributes); + procedure SecurityGetAllUsers(out UserInfo: PTokenUser; out SID: PSID; out ACL: PACL; + out SecurityDescriptor: PSecurityDescriptor; out SecurityAttributes: PSecurityAttributes); + procedure SecurityGetCurrentUser(out UserInfo: PTokenUser; out SID: PSID; out ACL: PACL; + out SecurityDescriptor: PSecurityDescriptor; out SecurityAttributes: PSecurityAttributes); + procedure SecurityGetCurrentUserInfo(out UserInfo: PTokenUser); + procedure SecurityGetSecurityAttributes(OwnerSID, AccessSID: PSID; out ACL: PACL; + out SecurityDescriptor: PSecurityDescriptor; out SecurityAttributes: PSecurityAttributes); public constructor Create; destructor Destroy; override; @@ -86,8 +114,10 @@ class function GetApplicationWnd(const ProcessID: DWORD): THandle; class procedure KillInstance; class function SetForegroundWindow98(const Wnd: THandle): Boolean; - function CheckInstance(const MaxInstances: Word): Boolean; - procedure CheckMultipleInstances(const MaxInstances: Word); + function CheckInstance(MaxInstances: Word; MaxSessionInstances: Word = 0; + MaxUserInstances: Word = 0): Boolean; + procedure CheckMultipleInstances(MaxInstances: Word; MaxSessionInstances: Word = 0; + MaxUserInstances: Word = 0); procedure CheckSingleInstance; function SendCmdLineParams(const WindowClassName: string; const OriginatorWnd: THandle): Boolean; function SendData(const WindowClassName: string; const DataKind: TJclAppInstDataKind; @@ -97,13 +127,23 @@ const S: string; OriginatorWnd: THandle): Boolean; function SendStrings(const WindowClassName: string; const DataKind: TJclAppInstDataKind; const Strings: TStrings; OriginatorWnd: THandle): Boolean; - function SwitchTo(const Index: Integer): Boolean; - procedure UserNotify(const Param: Longint); - property AppWnds[Index: Integer]: THandle read GetAppWnds; - property InstanceIndex[ProcessID: DWORD]: Integer read GetInstanceIndex; - property InstanceCount: Integer read GetInstanceCount; + function SessionSwitchTo(Index: Integer): Boolean; + function SwitchTo(Index: Integer): Boolean; + function UserSwitchTo(Index: Integer): Boolean; + procedure UserNotify(Param: Longint); + property AppWnds[Index: Integer]: THandle read GetAllAppWnds; + property InstanceIndex[ProcessID: DWORD]: Integer read GetAllInstanceIndex; + property InstanceCount: Integer read GetAllInstanceCount; property MessageID: DWORD read FMessageID; - property ProcessIDs[Index: Integer]: DWORD read GetProcessIDs; + property ProcessIDs[Index: Integer]: DWORD read GetAllProcessIDs; + property SessionAppWnds[Index: Integer]: THandle read GetSessionAppWnds; + property SessionInstanceIndex[ProcessID: DWORD]: Integer read GetSessionInstanceIndex; + property SessionInstanceCount: Integer read GetSessionInstanceCount; + property SessionProcessIDs[Index: Integer]: DWORD read GetSessionProcessIDs; + property UserAppWnds[Index: Integer]: THandle read GetUserAppWnds; + property UserInstanceIndex[ProcessID: DWORD]: Integer read GetUserInstanceIndex; + property UserInstanceCount: Integer read GetUserInstanceCount; + property UserProcessIDs[Index: Integer]: DWORD read GetUserProcessIDs; end; function JclAppInstances: TJclAppInstances; overload; @@ -139,6 +179,7 @@ uses SysUtils, + JclSecurity, JclStrings; {$IFDEF FPC} // missing declaration from unit Messages @@ -155,7 +196,9 @@ { strings to form a unique name for file mapping and optex objects } JclAIPrefix = 'Jcl'; JclAIOptex = '_Otx'; - JclAIMapping = '_Map'; + JclAIAllMapping = '_All'; + JclAISessionMapping = '_Session_'; + JclAIUserMapping = '_User_'; { window message used for communication between instances } JclAIMessage = '_Msg'; @@ -193,9 +236,18 @@ destructor TJclAppInstances.Destroy; begin - if (FMapping <> nil) and (FOptex <> nil) then - RemoveInstance; - FreeAndNil(FMapping); + if FAllMapping <> nil then + RemoveInstance(FAllMappingView); + if FSessionMapping <> nil then + RemoveInstance(FSessionMappingView); + if FUserMapping <> nil then + RemoveInstance(FUserMappingView); + + NotifyInstances(AI_INSTANCEDESTROYED, Integer(FCPID)); + + FreeAndNil(FAllMapping); + FreeAndNil(FSessionMapping); + FreeAndNil(FUserMapping); FreeAndNil(FOptex); inherited Destroy; end; @@ -207,18 +259,37 @@ Result := SetForegroundWindow98(Wnd); end; -function TJclAppInstances.CheckInstance(const MaxInstances: Word): Boolean; +function TJclAppInstances.CheckInstance(MaxInstances, MaxSessionInstances, MaxUserInstances: Word): Boolean; var SharedData: PJclAISharedData; + CurrentProcessId: DWORD; begin + CurrentProcessId := GetCurrentProcessId; FOptex.Enter; try - SharedData := PJclAISharedData(FMappingView.Memory); + // check all instances + SharedData := PJclAISharedData(FAllMappingView.Memory); if SharedData^.MaxInst = 0 then SharedData^.MaxInst := MaxInstances; - Result := SharedData^.Count < SharedData^.MaxInst; - SharedData^.ProcessIDs[SharedData^.Count] := GetCurrentProcessId; + Result := (SharedData^.MaxInst = 0) or (SharedData^.Count < SharedData^.MaxInst); + SharedData^.ProcessIDs[SharedData^.Count] := CurrentProcessId; Inc(SharedData^.Count); + + // check session instances + SharedData := PJclAISharedData(FSessionMappingView.Memory); + if SharedData^.MaxInst = 0 then + SharedData^.MaxInst := MaxSessionInstances; + Result := Result and ((SharedData^.MaxInst = 0) or (SharedData^.Count < SharedData^.MaxInst)); + SharedData^.ProcessIDs[SharedData^.Count] := CurrentProcessId; + Inc(SharedData^.Count); + + // check user instances + SharedData := PJclAISharedData(FUserMappingView.Memory); + if SharedData^.MaxInst = 0 then + SharedData^.MaxInst := MaxUserInstances; + Result := Result and ((SharedData^.MaxInst = 0) or (SharedData^.Count < SharedData^.MaxInst)); + SharedData^.ProcessIDs[SharedData^.Count] := CurrentProcessId; + Inc(SharedData^.Count); finally FOptex.Leave; end; @@ -226,9 +297,9 @@ NotifyInstances(AI_INSTANCECREATED, Integer(FCPID)); end; -procedure TJclAppInstances.CheckMultipleInstances(const MaxInstances: Word); +procedure TJclAppInstances.CheckMultipleInstances(MaxInstances, MaxSessionInstances, MaxUserInstances: Word); begin - if not CheckInstance(MaxInstances) then + if not CheckInstance(MaxInstances, MaxSessionInstances, MaxUserInstances) then begin SwitchTo(0); KillInstance; @@ -274,22 +345,37 @@ Result := TopLevelWnd.Wnd; end; -function TJclAppInstances.GetAppWnds(Index: Integer): THandle; +function TJclAppInstances.GetAllAppWnds(Index: Integer): THandle; begin - Result := GetApplicationWnd(GetProcessIDs(Index)); + Result := GetApplicationWnd(GetAllProcessIDs(Index)); end; -function TJclAppInstances.GetInstanceCount: Integer; +function TJclAppInstances.GetAllInstanceCount: Integer; begin + Result := GetInstanceCount(FAllMappingView); +end; + +function TJclAppInstances.GetAllInstanceIndex(ProcessID: DWORD): Integer; +begin + Result := GetInstanceIndex(FAllMappingView, ProcessID); +end; + +function TJclAppInstances.GetAllProcessIDs(Index: Integer): DWORD; +begin + Result := GetProcessIDs(FAllMappingView, Index); +end; + +function TJclAppInstances.GetInstanceCount(MappingView: TJclFileMappingView): Integer; +begin FOptex.Enter; try - Result := PJclAISharedData(FMappingView.Memory)^.Count; + Result := PJclAISharedData(MappingView.Memory)^.Count; finally FOptex.Leave; end; end; -function TJclAppInstances.GetInstanceIndex(ProcessID: DWORD): Integer; +function TJclAppInstances.GetInstanceIndex(MappingView: TJclFileMappingView; ProcessID: DWORD): Integer; var I: Integer; SharedData: PJclAISharedData; @@ -297,7 +383,7 @@ Result := -1; FOptex.Enter; try - SharedData := PJclAISharedData(FMappingView.Memory); + SharedData := PJclAISharedData(MappingView.Memory); for I := 0 to SharedData^.Count - 1 do if SharedData^.ProcessIDs[I] = ProcessID then begin @@ -309,13 +395,13 @@ end; end; -function TJclAppInstances.GetProcessIDs(Index: Integer): DWORD; +function TJclAppInstances.GetProcessIDs(MappingView: TJclFileMappingView; Index: Integer): DWORD; var SharedData: PJclAISharedData; begin FOptex.Enter; try - SharedData := PJclAISharedData(FMappingView.Memory); + SharedData := PJclAISharedData(MappingView.Memory); if Index >= SharedData^.Count then Result := 0 else @@ -325,29 +411,183 @@ end; end; +function TJclAppInstances.GetSessionAppWnds(Index: Integer): THandle; +begin + Result := GetApplicationWnd(GetProcessIDs(FSessionMappingView, Index)); +end; + +function TJclAppInstances.GetSessionInstanceCount: Integer; +begin + Result := GetInstanceCount(FSessionMappingView); +end; + +function TJclAppInstances.GetSessionInstanceIndex(ProcessID: DWORD): Integer; +begin + Result := GetInstanceIndex(FSessionMappingView, ProcessID); +end; + +function TJclAppInstances.GetSessionProcessIDs(Index: Integer): DWORD; +begin + Result := GetProcessIDs(FSessionMappingView, Index); +end; + +function TJclAppInstances.GetUserAppWnds(Index: Integer): THandle; +begin + Result := GetApplicationWnd(GetProcessIDs(FUserMappingView, Index)); +end; + +function TJclAppInstances.GetUserInstanceCount: Integer; +begin + Result := GetInstanceCount(FUserMappingView); +end; + +function TJclAppInstances.GetUserInstanceIndex(ProcessID: DWORD): Integer; +begin + Result := GetInstanceIndex(FUserMappingView, ProcessID); +end; + +function TJclAppInstances.GetUserProcessIDs(Index: Integer): DWORD; +begin + Result := GetProcessIDs(FUserMappingView, Index); +end; + +const + ACL_REVISION = 2; + +type + _ACE_HEADER = record + AceType: BYTE; + AceFlags: BYTE; + AceSize: WORD; + end; + ACE_HEADER = _ACE_HEADER; + PACE_HEADER = ^_ACE_HEADER; + + _ACCESS_ALLOWED_ACE = record + Header: ACE_HEADER; + Mask: ACCESS_MASK; + SidStart: DWORD; + end; + + ACCESS_ALLOWED_ACE = _ACCESS_ALLOWED_ACE; + PACCESS_ALLOWED_ACE = ^_ACCESS_ALLOWED_ACE; + procedure TJclAppInstances.InitData; -var - UniqueAppID: string; begin if ExplicitUniqueAppId <> '' then - UniqueAppID := JclAIPrefix + ExplicitUniqueAppId + FUniqueAppID := JclAIPrefix + ExplicitUniqueAppId else - UniqueAppID := AnsiUpperCase(JclAIPrefix + ParamStr(0)); - CharReplace(UniqueAppID, '\', '_'); - FOptex := TJclOptex.Create(UniqueAppID + JclAIOptex, 4000); - FOptex.Enter; + FUniqueAppID := AnsiUpperCase(JclAIPrefix + ParamStr(0)); + + CharReplace(FUniqueAppID, '\', '_'); + + FMessageID := RegisterWindowMessage(PChar(FUniqueAppID + JclAIMessage)); + + FOptex := TJclOptex.Create(FUniqueAppID + JclAIOptex, 4000); + + InitAllData; + InitSessionData; + InitUserData; +end; + +procedure TJclAppInstances.InitAllData; +var + UserInfo: PTokenUser; + ACL: PACL; + SID: PSID; + SecurityAttributes: PSecurityAttributes; + SecurityDescriptor: PSecurityDescriptor; +begin + UserInfo := nil; + ACL := nil; + SID := nil; + SecurityDescriptor := nil; + SecurityAttributes := nil; try - FMapping := TJclSwapFileMapping.Create(UniqueAppID + JclAIMapping, - PAGE_READWRITE, SizeOf(TJclAISharedData), nil); - FMappingView := FMapping.Views[FMapping.Add(FILE_MAP_ALL_ACCESS, SizeOf(TJclAISharedData), 0)]; - if not FMapping.Existed then - FillChar(FMappingView.Memory^, SizeOf(TJclAISharedData), #0); + SecurityGetAllUsers(UserInfo, SID, ACL, SecurityDescriptor, SecurityAttributes); + + FOptex.Enter; + try + FAllMapping := TJclSwapFileMapping.Create(FUniqueAppID + JclAIAllMapping, + PAGE_READWRITE, SizeOf(TJclAISharedData), SecurityAttributes); + FAllMappingView := FAllMapping.Views[FAllMapping.Add(FILE_MAP_ALL_ACCESS, SizeOf(TJclAISharedData), 0)]; + if not FAllMapping.Existed then + FillChar(FAllMappingView.Memory^, SizeOf(TJclAISharedData), #0); + finally + FOptex.Leave; + end; finally - FOptex.Leave; + SecurityFree(UserInfo, SID, ACL, SecurityDescriptor, SecurityAttributes); end; - FMessageID := RegisterWindowMessage(PChar(UniqueAppID + JclAIMessage)); end; +procedure TJclAppInstances.InitSessionData; +var + UserInfo: PTokenUser; + ACL: PACL; + SID: PSID; + SecurityAttributes: PSecurityAttributes; + SecurityDescriptor: PSecurityDescriptor; + SessionID: DWORD; +begin + UserInfo := nil; + ACL := nil; + SID := nil; + SecurityDescriptor := nil; + SecurityAttributes := nil; + try + SecurityGetAllUsers(UserInfo, SID, ACL, SecurityDescriptor, SecurityAttributes); + + SessionID := 0; + ProcessIdToSessionId(GetCurrentProcessId, SessionID); // RESULT + FOptex.Enter; + try + FSessionMapping := TJclSwapFileMapping.Create(FUniqueAppID + JclAISessionMapping + IntToStr(SessionID), + PAGE_READWRITE, SizeOf(TJclAISharedData), SecurityAttributes); + FSessionMappingView := FSessionMapping.Views[FSessionMapping.Add(FILE_MAP_ALL_ACCESS, SizeOf(TJclAISharedData), 0)]; + if not FSessionMapping.Existed then + FillChar(FSessionMappingView.Memory^, SizeOf(TJclAISharedData), #0); + finally + FOptex.Leave; + end; + finally + SecurityFree(UserInfo, SID, ACL, SecurityDescriptor, SecurityAttributes); + end; +end; + +procedure TJclAppInstances.InitUserData; +var + UserInfo: PTokenUser; + ACL: PACL; + SID: PSID; + SecurityAttributes: PSecurityAttributes; + SecurityDescriptor: PSecurityDescriptor; + UserName, GroupName: string; +begin + UserInfo := nil; + ACL := nil; + SID := nil; + SecurityDescriptor := nil; + SecurityAttributes := nil; + try + SecurityGetCurrentUser(UserInfo, SID, ACL, SecurityDescriptor, SecurityAttributes); + LookupAccountBySid(UserInfo.User.Sid, UserName, GroupName); + + FOptex.Enter; + try + FUserMapping := TJclSwapFileMapping.Create(FUniqueAppID + JclAIUserMapping + UserName + '_' + GroupName, + PAGE_READWRITE, SizeOf(TJclAISharedData), SecurityAttributes); + FUserMappingView := FUserMapping.Views[FUserMapping.Add(FILE_MAP_ALL_ACCESS, SizeOf(TJclAISharedData), 0)]; + if not FUserMapping.Existed then + FillChar(FUserMappingView.Memory^, SizeOf(TJclAISharedData), #0); + finally + FOptex.Leave; + end; + finally + SecurityFree(UserInfo, SID, ACL, SecurityDescriptor, SecurityAttributes); + end; +end; + class procedure TJclAppInstances.KillInstance; begin Halt(0); @@ -369,7 +609,7 @@ begin FOptex.Enter; try - SharedData := PJclAISharedData(FMappingView.Memory); + SharedData := PJclAISharedData(FAllMappingView.Memory); for I := 0 to SharedData^.Count - 1 do begin Wnd := GetApplicationWnd(SharedData^.ProcessIDs[I]); @@ -391,14 +631,14 @@ end; end; -procedure TJclAppInstances.RemoveInstance; +procedure TJclAppInstances.RemoveInstance(MappingView: TJclFileMappingView); var I: Integer; SharedData: PJclAISharedData; begin FOptex.Enter; try - SharedData := PJclAISharedData(FMappingView.Memory); + SharedData := PJclAISharedData(MappingView.Memory); for I := 0 to SharedData^.Count - 1 do if SharedData^.ProcessIDs[I] = FCPID then begin @@ -410,9 +650,109 @@ finally FOptex.Leave; end; - NotifyInstances(AI_INSTANCEDESTROYED, Integer(FCPID)); end; +procedure TJclAppInstances.SecurityFree(UserInfo: PTokenUser; SID: PSID; ACL: PACL; + SecurityDescriptor: PSecurityDescriptor; SecurityAttributes: PSecurityAttributes); +begin + if Assigned(UserInfo) then + FreeMem(UserInfo); + if Assigned(SID) then + FreeSID(SID); + if Assigned(ACL) then + FreeMem(ACL); + if Assigned(SecurityDescriptor) then + FreeMem(SecurityDescriptor); + if Assigned(SecurityAttributes) then + FreeMem(SecurityAttributes); +end; + +procedure TJclAppInstances.SecurityGetAllUsers(out UserInfo: PTokenUser; out SID: PSID; out ACL: PACL; + out SecurityDescriptor: PSecurityDescriptor; out SecurityAttributes: PSecurityAttributes); +var + WorldAuth: Windows.SID_IDENTIFIER_AUTHORITY; +begin + UserInfo := nil; + ACL := nil; + SID := nil; + SecurityDescriptor := nil; + SecurityAttributes := nil; + + SecurityGetCurrentUserInfo(UserInfo); + + // Retrieve the SID of the Everyone group. + WorldAuth := JclWin32.SECURITY_WORLD_SID_AUTHORITY; + AllocateAndInitializeSid(WorldAuth, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, SID); // RESULT + + SecurityGetSecurityAttributes(UserInfo^.User.Sid, SID, ACL, SecurityDescriptor, SecurityAttributes); +end; + +procedure TJclAppInstances.SecurityGetCurrentUser(out UserInfo: PTokenUser; out SID: PSID; out ACL: PACL; + out SecurityDescriptor: PSecurityDescriptor; out SecurityAttributes: PSecurityAttributes); +begin + UserInfo := nil; + ACL := nil; + SID := nil; + SecurityDescriptor := nil; + SecurityAttributes := nil; + SecurityGetCurrentUserInfo(UserInfo); + SecurityGetSecurityAttributes(UserInfo^.User.Sid, UserInfo.User.Sid, ACL, SecurityDescriptor, SecurityAttributes); +end; + +procedure TJclAppInstances.SecurityGetCurrentUserInfo(out UserInfo: PTokenUser); +var + ProcessToken: THandle; + TokenInfoSize: DWORD; + HaveToken: Boolean; +begin + UserInfo := nil; + ProcessToken := 0; + try + HaveToken := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, ProcessToken); + if (not HaveToken) and (GetLastError = ERROR_NO_TOKEN) then + HaveToken := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, ProcessToken); + if not HaveToken then + RaiseLastOSError; + + if GetTokenInformation(ProcessToken, TokenUser, nil, 0, TokenInfoSize) or + (GetLastError <> ERROR_INSUFFICIENT_BUFFER) then + RaiseLastOSError; + UserInfo := PTokenUser(AllocMem(TokenInfoSize)); + Win32Check(GetTokenInformation(ProcessToken, TokenUser, UserInfo, TokenInfoSize, TokenInfoSize)); + finally + if ProcessToken <> 0 then + CloseHandle(ProcessToken); + end; +end; + +procedure TJclAppInstances.SecurityGetSecurityAttributes(OwnerSID, AccessSID: PSID; out ACL: PACL; + out SecurityDescriptor: PSecurityDescriptor; out SecurityAttributes: PSecurityAttributes); +var + ACLSize: SizeInt; +begin + // create the ACL + ACLSize := SizeOf(TACL) + SizeOf(ACCESS_ALLOWED_ACE) + SizeOf(DWORD) + GetLengthSid(AccessSID); + ACL := AllocMem(ACLSize); + Win32Check(InitializeAcl(ACL^, ACLSize, ACL_REVISION)); + Win32Check(AddAccessAllowedAce(ACL^, ACL_REVISION, FILE_MAP_ALL_ACCESS, AccessSID)); + Assert(IsValidAcl(ACL^)); + + // create the security descriptor + SecurityDescriptor := AllocMem(SECURITY_DESCRIPTOR_MIN_LENGTH); + Win32Check(InitializeSecurityDescriptor(SecurityDescriptor, SECURITY_DESCRIPTOR_REVISION)); + Win32Check(SetSecurityDescriptorSacl(SecurityDescriptor, False, nil, True)); + Win32Check(SetSecurityDescriptorOwner(SecurityDescriptor, OwnerSID, False)); + Win32Check(SetSecurityDescriptorGroup(SecurityDescriptor, OwnerSID, False)); + Win32Check(SetSecurityDescriptorDacl(SecurityDescriptor, True, ACL, False)); + Assert(IsValidSecurityDescriptor(SecurityDescriptor)); + + // create the security attributes + SecurityAttributes := AllocMem(SizeOf(SecurityAttributes^)); + SecurityAttributes^.nLength := SizeOf(SecurityAttributes^); + SecurityAttributes^.lpSecurityDescriptor := SecurityDescriptor; + SecurityAttributes^.bInheritHandle := False; +end; + function TJclAppInstances.SendCmdLineParams(const WindowClassName: string; const OriginatorWnd: THandle): Boolean; var TempList: TStringList; @@ -452,7 +792,7 @@ Found := False; Data.Self.FOptex.Enter; try - SharedData := PJclAISharedData(Data.Self.FMappingView.Memory); + SharedData := PJclAISharedData(Data.Self.FAllMappingView.Memory); for I := 0 to SharedData^.Count - 1 do if SharedData^.ProcessIDs[I] = PID then begin @@ -499,6 +839,11 @@ Result := SendString(WindowClassName, DataKind, Strings.Text, OriginatorWnd); end; +function TJclAppInstances.SessionSwitchTo(Index: Integer): Boolean; +begin + Result := BringAppWindowToFront(SessionAppWnds[Index]); +end; + class function TJclAppInstances.SetForegroundWindow98(const Wnd: THandle): Boolean; var ForeThreadID, NewThreadID: DWORD; @@ -522,16 +867,21 @@ Result := True; end; -function TJclAppInstances.SwitchTo(const Index: Integer): Boolean; +function TJclAppInstances.SwitchTo(Index: Integer): Boolean; begin Result := BringAppWindowToFront(AppWnds[Index]); end; -procedure TJclAppInstances.UserNotify(const Param: Integer); +procedure TJclAppInstances.UserNotify(Param: Longint); begin NotifyInstances(AI_USERMSG, Param); end; +function TJclAppInstances.UserSwitchTo(Index: Integer): Boolean; +begin + Result := BringAppWindowToFront(UserAppWnds[Index]); +end; + function JclAppInstances: TJclAppInstances; begin if AppInstances = nil then Modified: trunk/jcl/source/windows/JclWin32.pas =================================================================== --- trunk/jcl/source/windows/JclWin32.pas 2011-08-14 14:22:18 UTC (rev 3585) +++ trunk/jcl/source/windows/JclWin32.pas 2011-08-17 21:16:26 UTC (rev 3586) @@ -3094,10 +3094,13 @@ function LocateLegacyContext(ContextEx: PCONTEXT_EX; Length: PDWORD): PCONTEXT; stdcall; {$EXTERNALSYM LocateLegacyContext} -procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: Int64); +procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: Int64); stdcall; {$EXTERNALSYM SetExtendedFeaturesMask} +function ProcessIdToSessionId(dwProcessId: DWORD; out dwSessionId: DWORD): BOOL; stdcall; +{$EXTERNALSYM ProcessIdToSessionId} + // From JwaAclApi // line 185 @@ -8527,7 +8530,7 @@ end; type - TSetExtendedFeaturesMask = procedure (ContextEx: PCONTEXT_EX; const FeatureMask: Int64); + TSetExtendedFeaturesMask = procedure (ContextEx: PCONTEXT_EX; const FeatureMask: Int64); stdcall; var _SetExtendedFeaturesMask: TSetExtendedFeaturesMask = nil; @@ -8538,8 +8541,20 @@ _SetExtendedFeaturesMask(ContextEx, FeatureMask); end; +type + TProcessIdToSessionId = function (dwProcessId: DWORD; out dwSessionId: DWORD): BOOL; stdcall; +var + _ProcessIdToSessionId: TProcessIdToSessionId = nil; +function ProcessIdToSessionId(dwProcessId: DWORD; out dwSessionId: DWORD): BOOL; +begin + GetProcedureAddress(Pointer(@_ProcessIdToSessionId), kernel32, 'ProcessIdToSessionId'); + Result := _ProcessIdToSessionId(dwProcessId, dwSessionId); +end; + + + type TGetCalendarInfoA = function (Locale: LCID; Calendar: CALID; CalType: CALTYPE; lpCalData: LPSTR; cchData: Integer; lpValue: LPDWORD): Integer; stdcall; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-14 14:22:25
|
Revision: 3585 http://jcl.svn.sourceforge.net/jcl/?rev=3585&view=rev Author: outchy Date: 2011-08-14 14:22:18 +0000 (Sun, 14 Aug 2011) Log Message: ----------- msbuild example update. Modified Paths: -------------- trunk/jcl/examples/windows/msbuild/ConditionParserMain.dfm Added Paths: ----------- trunk/jcl/examples/windows/msbuild/ trunk/jcl/examples/windows/msbuild/ConditionParserMain.pas Removed Paths: ------------- trunk/jcl/examples/common/msbuild/ trunk/jcl/examples/windows/msbuild/ConditionParserMain.pas Modified: trunk/jcl/examples/windows/msbuild/ConditionParserMain.dfm =================================================================== --- trunk/jcl/examples/common/msbuild/ConditionParserMain.dfm 2011-08-14 08:56:32 UTC (rev 3582) +++ trunk/jcl/examples/windows/msbuild/ConditionParserMain.dfm 2011-08-14 14:22:18 UTC (rev 3585) @@ -2,7 +2,7 @@ Left = 0 Top = 0 Caption = 'MsBuild condition evaluator' - ClientHeight = 301 + ClientHeight = 536 ClientWidth = 467 Color = clBtnFace Font.Charset = DEFAULT_CHARSET @@ -11,7 +11,6 @@ Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False - OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object LabelProperties: TLabel @@ -30,6 +29,14 @@ Caption = '&Conditions:' FocusControl = MemoConditions end + object Label1: TLabel + Left = 8 + Top = 341 + Width = 39 + Height = 13 + Caption = '&Results:' + FocusControl = MemoResults + end object MemoProperties: TMemo Left = 8 Top = 27 @@ -39,14 +46,52 @@ Lines.Strings = ( 'ZERO=0' 'HUNDRED=100') + ScrollBars = ssVertical TabOrder = 0 end object MemoConditions: TMemo Left = 8 Top = 170 Width = 451 - Height = 123 - Anchors = [akLeft, akTop, akRight, akBottom] + Height = 134 + Anchors = [akLeft, akTop, akRight] + Lines.Strings = ( + #39'$(HUNDRED)'#39' == 99' + #39'$(HUNDRED)'#39' == '#39'0x$(zero)64'#39 + #39'$(HUNDRED)'#39' != 99' + #39'$(HUNDRED)'#39' != 100' + #39'$(HUNDRED)'#39' < 100' + #39'$(HUNDRED)'#39' < 101' + #39'$(HUNDRED)'#39' > 100' + #39'$(HUNDRED)'#39' > 99' + '(99 < '#39'$(HUNDRED)'#39') and ('#39'$(HUNDRED)'#39' < 101)' + '(99 < '#39'$(HUNDRED)'#39') and ('#39'$(HUNDRED)'#39' < 100)' + '(100 < '#39'$(HUNDRED)'#39') and ('#39'$(HUNDRED)'#39' < 101)' + 'Exists(toto)' + 'HasTrailingSlash(toto)' + '!HasTrailingSlash(toto)' + 'HasTrailingSlash('#39'toto\'#39')') + ScrollBars = ssVertical TabOrder = 1 end + object MemoResults: TMemo + Left = 8 + Top = 360 + Width = 451 + Height = 168 + Anchors = [akLeft, akTop, akRight, akBottom] + ParentColor = True + ReadOnly = True + ScrollBars = ssVertical + TabOrder = 2 + end + object ButtonEval: TButton + Left = 8 + Top = 310 + Width = 75 + Height = 25 + Caption = '&Eval' + TabOrder = 3 + OnClick = ButtonEvalClick + end end Deleted: trunk/jcl/examples/windows/msbuild/ConditionParserMain.pas =================================================================== --- trunk/jcl/examples/common/msbuild/ConditionParserMain.pas 2011-08-14 08:56:32 UTC (rev 3582) +++ trunk/jcl/examples/windows/msbuild/ConditionParserMain.pas 2011-08-14 14:22:18 UTC (rev 3585) @@ -1,66 +0,0 @@ -unit ConditionParserMain; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls; - -type - TFormMain = class(TForm) - LabelProperties: TLabel; - MemoProperties: TMemo; - LabelConditions: TLabel; - MemoConditions: TMemo; - procedure FormCreate(Sender: TObject); - private - { D\xE9clarations priv\xE9es } - public - { D\xE9clarations publiques } - end; - -var - FormMain: TFormMain; - -implementation - -{$R *.dfm} - -uses - JclMsBuild; - -procedure TFormMain.FormCreate(Sender: TObject); - procedure Evaluate(const Condition: string; Defines: TStrings); - begin - MemoConditions.Lines.Add('"' + Condition + '" = ' + BoolToStr(ParseCondition(Condition, Defines), True)); - end; -var - Defines: TStringList; -begin - Defines := TStringList.Create; - try - Defines.CaseSensitive := False; - Defines.Assign(MemoProperties.Lines); - Evaluate('''$(HUNDRED)'' == 99', Defines); - Evaluate('''$(HUNDRED)'' == ''0x$(zero)64''', Defines); - Evaluate('''$(HUNDRED)'' != 99', Defines); - Evaluate('''$(HUNDRED)'' != 100', Defines); - Evaluate('''$(HUNDRED)'' < 100', Defines); - Evaluate('''$(HUNDRED)'' < 101', Defines); - Evaluate('''$(HUNDRED)'' > 100', Defines); - Evaluate('''$(HUNDRED)'' > 99', Defines); - Evaluate('(99 < ''$(HUNDRED)'') and (''$(HUNDRED)'' < 101)', Defines); - Evaluate('(99 < ''$(HUNDRED)'') and (''$(HUNDRED)'' < 100)', Defines); - Evaluate('(100 < ''$(HUNDRED)'') and (''$(HUNDRED)'' < 101)', Defines); - Evaluate('Exists(''' + Application.ExeName + ''')', Defines); - Evaluate('!Exists(''' + Application.ExeName + ''')', Defines); - Evaluate('Exists(toto)', Defines); - Evaluate('HasTrailingSlash(toto)', Defines); - Evaluate('!HasTrailingSlash(toto)', Defines); - Evaluate('HasTrailingSlash(''toto\'')', Defines); - finally - Defines.Free; - end; -end; - -end. Copied: trunk/jcl/examples/windows/msbuild/ConditionParserMain.pas (from rev 3583, trunk/jcl/examples/common/msbuild/ConditionParserMain.pas) =================================================================== --- trunk/jcl/examples/windows/msbuild/ConditionParserMain.pas (rev 0) +++ trunk/jcl/examples/windows/msbuild/ConditionParserMain.pas 2011-08-14 14:22:18 UTC (rev 3585) @@ -0,0 +1,101 @@ +unit ConditionParserMain; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls; + +type + TFormMain = class(TForm) + LabelProperties: TLabel; + MemoProperties: TMemo; + LabelConditions: TLabel; + MemoConditions: TMemo; + Label1: TLabel; + MemoResults: TMemo; + ButtonEval: TButton; + procedure ButtonEvalClick(Sender: TObject); + private + { D\xE9clarations priv\xE9es } + public + { D\xE9clarations publiques } + end; + +var + FormMain: TFormMain; + +implementation + +{$R *.dfm} + +uses + JclSimpleXml, + JclMsBuild; + +procedure TFormMain.ButtonEvalClick(Sender: TObject); + function GetVariableName(Index: Integer): string; + begin + Result := Format('var%d', [Index]); + end; + + procedure AddCondition(Index: Integer; XmlPropertyGroup: TJclSimpleXmlElem; const Condition: string); + var + VariableName: string; + XmlProperty: TJclSimpleXMLElem; + begin + VariableName := GetVariableName(Index); + XmlPropertyGroup.Items.Add(VariableName, 'False'); + XmlProperty := XmlPropertyGroup.Items.Add(VariableName, 'True'); + XmlProperty.Properties.Add('Condition', Condition); + end; + + procedure AddResult(Index: Integer; const Condition: string; Properties: TStrings); + begin + MemoResults.Lines.Add(Condition + '=' + Properties.Values[GetVariableName(Index)]); + end; + +var + MsBuildParser: TJclMsBuildParser; + Xml: TJclSimpleXml; + XmlPropertyGroup: TJclSimpleXmlElem; + Index: Integer; +begin + MemoResults.Lines.Clear; + + Xml := TJclSimpleXML.Create; + try + Xml.Root.Name := 'Project'; + Xml.Root.Properties.Add('xmlns', 'http://schemas.microsoft.com/developer/msbuild/2003'); + XmlPropertyGroup := Xml.Root.Items.Add('PropertyGroup'); + for Index := 0 to MemoConditions.Lines.Count - 1 do + AddCondition(Index, XmlPropertyGroup, MemoConditions.Lines.Strings[Index]); + + MsBuildParser := TJclMsBuildParser.Create('', Xml, False); + try + MsBuildParser.Init; + MsBuildParser.Properties.GlobalProperties.Assign(MemoProperties.Lines); + MsBuildParser.Parse; + + for Index := 0 to MemoConditions.Lines.Count - 1 do + AddResult(Index, MemoConditions.Lines.Strings[Index], MsBuildParser.Properties); + finally + MsBuildParser.Free; + end; + finally + Xml.Free; + end; + + (*MsBuildParser := TJclMsBuildParser.Create('MyProject.dproj'); + try + MsBuildParser.Init; + MsBuildParser.Properties.GlobalProperties.Values['Configuration'] := 'Release'; + MsBuildParser.Parse; + + MemoResults.Lines.Assign(MsBuildParser.Properties); + finally + MsBuildParser.Free; + end;*) +end; + +end. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-14 13:47:45
|
Revision: 3584 http://jcl.svn.sourceforge.net/jcl/?rev=3584&view=rev Author: outchy Date: 2011-08-14 13:47:39 +0000 (Sun, 14 Aug 2011) Log Message: ----------- this file should not have been sent in revision 3583. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=3583&view=rev Modified Paths: -------------- trunk/jcl/packages/JclPackagesD110.groupproj Modified: trunk/jcl/packages/JclPackagesD110.groupproj =================================================================== --- trunk/jcl/packages/JclPackagesD110.groupproj 2011-08-14 13:44:31 UTC (rev 3583) +++ trunk/jcl/packages/JclPackagesD110.groupproj 2011-08-14 13:47:39 UTC (rev 3584) @@ -4,12 +4,11 @@ </PropertyGroup> <ItemGroup /> <ItemGroup> - <Projects Include="..\examples\common\msbuild\ConditionParser.dproj" /> <Projects Include="d11\Jcl.dproj" /> <Projects Include="d11\JclBaseExpert.dproj" /> <Projects Include="d11\JclContainers.dproj" /> - <Projects Include="d11\JclDebugExpert.dproj" /> <Projects Include="d11\JclDeveloperTools.dproj" /> + <Projects Include="d11\JclDebugExpert.dproj" /> <Projects Include="d11\JclFavoriteFoldersExpert.dproj" /> <Projects Include="d11\JclProjectAnalysisExpert.dproj" /> <Projects Include="d11\JclRepositoryExpert.dproj" /> @@ -132,23 +131,14 @@ <Target Name="JclVersionControlExpert:Make"> <MSBuild Projects="d11\JclVersionControlExpert.dproj" Targets="Make" /> </Target> - <Target Name="ConditionParser"> - <MSBuild Projects="..\examples\common\msbuild\ConditionParser.dproj" Targets="" /> - </Target> - <Target Name="ConditionParser:Clean"> - <MSBuild Projects="..\examples\common\msbuild\ConditionParser.dproj" Targets="Clean" /> - </Target> - <Target Name="ConditionParser:Make"> - <MSBuild Projects="..\examples\common\msbuild\ConditionParser.dproj" Targets="Make" /> - </Target> <Target Name="Build"> - <CallTarget Targets="Jcl;JclVcl;JclContainers;JclDeveloperTools;JclBaseExpert;JclDebugExpert;JclFavoriteFoldersExpert;JclProjectAnalysisExpert;JclRepositoryExpert;JclSIMDViewExpert;JclStackTraceViewerExpert;JclVersionControlExpert;ConditionParser" /> + <CallTarget Targets="Jcl;JclVcl;JclContainers;JclDeveloperTools;JclBaseExpert;JclDebugExpert;JclFavoriteFoldersExpert;JclProjectAnalysisExpert;JclRepositoryExpert;JclSIMDViewExpert;JclStackTraceViewerExpert;JclVersionControlExpert" /> </Target> <Target Name="Clean"> - <CallTarget Targets="Jcl:Clean;JclVcl:Clean;JclContainers:Clean;JclDeveloperTools:Clean;JclBaseExpert:Clean;JclDebugExpert:Clean;JclFavoriteFoldersExpert:Clean;JclProjectAnalysisExpert:Clean;JclRepositoryExpert:Clean;JclSIMDViewExpert:Clean;JclStackTraceViewerExpert:Clean;JclVersionControlExpert:Clean;ConditionParser:Clean" /> + <CallTarget Targets="Jcl:Clean;JclVcl:Clean;JclContainers:Clean;JclDeveloperTools:Clean;JclBaseExpert:Clean;JclDebugExpert:Clean;JclFavoriteFoldersExpert:Clean;JclProjectAnalysisExpert:Clean;JclRepositoryExpert:Clean;JclSIMDViewExpert:Clean;JclStackTraceViewerExpert:Clean;JclVersionControlExpert:Clean" /> </Target> <Target Name="Make"> - <CallTarget Targets="Jcl:Make;JclVcl:Make;JclContainers:Make;JclDeveloperTools:Make;JclBaseExpert:Make;JclDebugExpert:Make;JclFavoriteFoldersExpert:Make;JclProjectAnalysisExpert:Make;JclRepositoryExpert:Make;JclSIMDViewExpert:Make;JclStackTraceViewerExpert:Make;JclVersionControlExpert:Make;ConditionParser:Make" /> + <CallTarget Targets="Jcl:Make;JclVcl:Make;JclContainers:Make;JclDeveloperTools:Make;JclBaseExpert:Make;JclDebugExpert:Make;JclFavoriteFoldersExpert:Make;JclProjectAnalysisExpert:Make;JclRepositoryExpert:Make;JclSIMDViewExpert:Make;JclStackTraceViewerExpert:Make;JclVersionControlExpert:Make" /> </Target> <Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" /> </Project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-14 13:44:37
|
Revision: 3583 http://jcl.svn.sourceforge.net/jcl/?rev=3583&view=rev Author: outchy Date: 2011-08-14 13:44:31 +0000 (Sun, 14 Aug 2011) Log Message: ----------- do not load jcl.XXX.inc values when the target is disabled. Modified Paths: -------------- trunk/jcl/examples/common/msbuild/ConditionParserMain.pas trunk/jcl/install/JclInstall.pas trunk/jcl/packages/JclPackagesD110.groupproj Modified: trunk/jcl/examples/common/msbuild/ConditionParserMain.pas =================================================================== --- trunk/jcl/examples/common/msbuild/ConditionParserMain.pas 2011-08-14 08:56:32 UTC (rev 3582) +++ trunk/jcl/examples/common/msbuild/ConditionParserMain.pas 2011-08-14 13:44:31 UTC (rev 3583) @@ -30,9 +30,9 @@ JclMsBuild; procedure TFormMain.FormCreate(Sender: TObject); - procedure Evaluate(const Condition: string; Defines: TStrings); + procedure Evaluate(const Condition: string; Properties: TJclMsBuildProperties); begin - MemoConditions.Lines.Add('"' + Condition + '" = ' + BoolToStr(ParseCondition(Condition, Defines), True)); + MemoConditions.Lines.Add('"' + Condition + '" = ' + BoolToStr(ParseCondition(Condition, Properties), True)); end; var Defines: TStringList; Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2011-08-14 08:56:32 UTC (rev 3582) +++ trunk/jcl/install/JclInstall.pas 2011-08-14 13:44:31 UTC (rev 3583) @@ -1103,8 +1103,6 @@ AConfiguration := InstallCore.Configuration; if not Assigned(AConfiguration) then Exit; - // options in included files jcl/source/include/jclXX.inc overrides stored settings - LoadStaticValues(AConfiguration); if AConfiguration.SectionExists(TargetName) then begin ResetDefaultValue := not AConfiguration.OptionAsBool[TargetName, OptionData[joJediCodeLibrary].Id]; @@ -1117,9 +1115,16 @@ if ResetDefaultValue then GUIPage.OptionChecked[Id] := False; end; + if not ResetDefaultValue then + // options in included files jcl/source/include/jclXX.inc overrides stored settings + LoadStaticValues(AConfiguration); end else + begin GUIPage.OptionChecked[OptionData[joJediCodeLibrary].Id] := True; + // options in included files jcl/source/include/jclXX.inc overrides stored settings + LoadStaticValues(AConfiguration); + end; if not Target.IsTurboExplorer then begin Modified: trunk/jcl/packages/JclPackagesD110.groupproj =================================================================== --- trunk/jcl/packages/JclPackagesD110.groupproj 2011-08-14 08:56:32 UTC (rev 3582) +++ trunk/jcl/packages/JclPackagesD110.groupproj 2011-08-14 13:44:31 UTC (rev 3583) @@ -4,11 +4,12 @@ </PropertyGroup> <ItemGroup /> <ItemGroup> + <Projects Include="..\examples\common\msbuild\ConditionParser.dproj" /> <Projects Include="d11\Jcl.dproj" /> <Projects Include="d11\JclBaseExpert.dproj" /> <Projects Include="d11\JclContainers.dproj" /> + <Projects Include="d11\JclDebugExpert.dproj" /> <Projects Include="d11\JclDeveloperTools.dproj" /> - <Projects Include="d11\JclDebugExpert.dproj" /> <Projects Include="d11\JclFavoriteFoldersExpert.dproj" /> <Projects Include="d11\JclProjectAnalysisExpert.dproj" /> <Projects Include="d11\JclRepositoryExpert.dproj" /> @@ -131,14 +132,23 @@ <Target Name="JclVersionControlExpert:Make"> <MSBuild Projects="d11\JclVersionControlExpert.dproj" Targets="Make" /> </Target> + <Target Name="ConditionParser"> + <MSBuild Projects="..\examples\common\msbuild\ConditionParser.dproj" Targets="" /> + </Target> + <Target Name="ConditionParser:Clean"> + <MSBuild Projects="..\examples\common\msbuild\ConditionParser.dproj" Targets="Clean" /> + </Target> + <Target Name="ConditionParser:Make"> + <MSBuild Projects="..\examples\common\msbuild\ConditionParser.dproj" Targets="Make" /> + </Target> <Target Name="Build"> - <CallTarget Targets="Jcl;JclVcl;JclContainers;JclDeveloperTools;JclBaseExpert;JclDebugExpert;JclFavoriteFoldersExpert;JclProjectAnalysisExpert;JclRepositoryExpert;JclSIMDViewExpert;JclStackTraceViewerExpert;JclVersionControlExpert" /> + <CallTarget Targets="Jcl;JclVcl;JclContainers;JclDeveloperTools;JclBaseExpert;JclDebugExpert;JclFavoriteFoldersExpert;JclProjectAnalysisExpert;JclRepositoryExpert;JclSIMDViewExpert;JclStackTraceViewerExpert;JclVersionControlExpert;ConditionParser" /> </Target> <Target Name="Clean"> - <CallTarget Targets="Jcl:Clean;JclVcl:Clean;JclContainers:Clean;JclDeveloperTools:Clean;JclBaseExpert:Clean;JclDebugExpert:Clean;JclFavoriteFoldersExpert:Clean;JclProjectAnalysisExpert:Clean;JclRepositoryExpert:Clean;JclSIMDViewExpert:Clean;JclStackTraceViewerExpert:Clean;JclVersionControlExpert:Clean" /> + <CallTarget Targets="Jcl:Clean;JclVcl:Clean;JclContainers:Clean;JclDeveloperTools:Clean;JclBaseExpert:Clean;JclDebugExpert:Clean;JclFavoriteFoldersExpert:Clean;JclProjectAnalysisExpert:Clean;JclRepositoryExpert:Clean;JclSIMDViewExpert:Clean;JclStackTraceViewerExpert:Clean;JclVersionControlExpert:Clean;ConditionParser:Clean" /> </Target> <Target Name="Make"> - <CallTarget Targets="Jcl:Make;JclVcl:Make;JclContainers:Make;JclDeveloperTools:Make;JclBaseExpert:Make;JclDebugExpert:Make;JclFavoriteFoldersExpert:Make;JclProjectAnalysisExpert:Make;JclRepositoryExpert:Make;JclSIMDViewExpert:Make;JclStackTraceViewerExpert:Make;JclVersionControlExpert:Make" /> + <CallTarget Targets="Jcl:Make;JclVcl:Make;JclContainers:Make;JclDeveloperTools:Make;JclBaseExpert:Make;JclDebugExpert:Make;JclFavoriteFoldersExpert:Make;JclProjectAnalysisExpert:Make;JclRepositoryExpert:Make;JclSIMDViewExpert:Make;JclStackTraceViewerExpert:Make;JclVersionControlExpert:Make;ConditionParser:Make" /> </Target> <Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" /> </Project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2011-08-14 08:56:39
|
Revision: 3582 http://jcl.svn.sourceforge.net/jcl/?rev=3582&view=rev Author: obones Date: 2011-08-14 08:56:32 +0000 (Sun, 14 Aug 2011) Log Message: ----------- No UTF-8 for old versions of Delphi Modified Paths: -------------- trunk/jcl/source/common/JclCompilerUtils.pas trunk/jcl/source/common/JclCompression.pas trunk/jcl/source/common/JclIDEUtils.pas trunk/jcl/source/common/JclResources.pas trunk/jcl/source/common/JclStreams.pas trunk/jcl/source/common/JclStringConversions.pas Modified: trunk/jcl/source/common/JclCompilerUtils.pas =================================================================== --- trunk/jcl/source/common/JclCompilerUtils.pas 2011-08-14 08:54:24 UTC (rev 3581) +++ trunk/jcl/source/common/JclCompilerUtils.pas 2011-08-14 08:56:32 UTC (rev 3582) @@ -24,7 +24,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2011-08-14 08:54:24 UTC (rev 3581) +++ trunk/jcl/source/common/JclCompression.pas 2011-08-14 08:56:32 UTC (rev 3582) @@ -36,7 +36,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } Modified: trunk/jcl/source/common/JclIDEUtils.pas =================================================================== --- trunk/jcl/source/common/JclIDEUtils.pas 2011-08-14 08:54:24 UTC (rev 3581) +++ trunk/jcl/source/common/JclIDEUtils.pas 2011-08-14 08:56:32 UTC (rev 3582) @@ -1,4 +1,4 @@ -{**************************************************************************************************} +{**************************************************************************************************} { } { Project JEDI Code Library (JCL) } { } @@ -47,7 +47,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2011-08-14 08:54:24 UTC (rev 3581) +++ trunk/jcl/source/common/JclResources.pas 2011-08-14 08:56:32 UTC (rev 3582) @@ -38,7 +38,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } Modified: trunk/jcl/source/common/JclStreams.pas =================================================================== --- trunk/jcl/source/common/JclStreams.pas 2011-08-14 08:54:24 UTC (rev 3581) +++ trunk/jcl/source/common/JclStreams.pas 2011-08-14 08:56:32 UTC (rev 3582) @@ -27,7 +27,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } Modified: trunk/jcl/source/common/JclStringConversions.pas =================================================================== --- trunk/jcl/source/common/JclStringConversions.pas 2011-08-14 08:54:24 UTC (rev 3581) +++ trunk/jcl/source/common/JclStringConversions.pas 2011-08-14 08:56:32 UTC (rev 3582) @@ -34,7 +34,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2011-08-14 08:54:30
|
Revision: 3581 http://jcl.svn.sourceforge.net/jcl/?rev=3581&view=rev Author: obones Date: 2011-08-14 08:54:24 +0000 (Sun, 14 Aug 2011) Log Message: ----------- No UTF-8 for old versions of Delphi Modified Paths: -------------- trunk/jcl/source/common/JclDevToolsResources.pas Modified: trunk/jcl/source/common/JclDevToolsResources.pas =================================================================== --- trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-13 19:35:19 UTC (rev 3580) +++ trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-14 08:54:24 UTC (rev 3581) @@ -1,4 +1,4 @@ -{**************************************************************************************************} +{**************************************************************************************************} { } { Project JEDI Code Library (JCL) } { } @@ -38,7 +38,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-13 19:35:26
|
Revision: 3580 http://jcl.svn.sourceforge.net/jcl/?rev=3580&view=rev Author: outchy Date: 2011-08-13 19:35:19 +0000 (Sat, 13 Aug 2011) Log Message: ----------- several bug fixes and some new features: - do not encode single quotes when saving the modified MsBuild project file. - add new property as classical element to the first PropertyGroup. - do not parse imported files if neither the project file name nor the xml class is assigned. - do not attempt to save the reference to the xml element when the property value was null. Modified Paths: -------------- trunk/jcl/source/windows/JclMsBuild.pas Modified: trunk/jcl/source/windows/JclMsBuild.pas =================================================================== --- trunk/jcl/source/windows/JclMsBuild.pas 2011-08-13 19:25:52 UTC (rev 3579) +++ trunk/jcl/source/windows/JclMsBuild.pas 2011-08-13 19:35:19 UTC (rev 3580) @@ -23,7 +23,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -303,7 +303,7 @@ function EvaluateList(const Name: string): string; function EvaluateRegistryProperty(Root: HKEY; const Path, Name: string): string; function EvaluateString(const S: string): string; - function EvaluateTransform(ItemList: TStrings; const Transform: string): string; + function EvaluateTransform(ItemList: TStrings; const Transform: string): string; public // this function parses MsBuild condition as described at: // http://msdn.microsoft.com/en-us/library/7szfhaft.aspx @@ -332,6 +332,9 @@ procedure InitEnvironmentProperties; procedure InitReservedProperties; + // do not encode ' + procedure XMLEncodeValue(Sender: TObject; var Value: string); + property CurrentFileName: TFileName read FCurrentFileName; property ProjectFileName: TFileName read FProjectFileName; property Xml: TJclSimpleXml read FXml; @@ -806,7 +809,7 @@ XmlElem.Value := Value else if Assigned(Parser.FFirstPropertyGroup) then - Parser.FFirstPropertyGroup.Items.AddText(Name, Value) + Parser.FFirstPropertyGroup.Items.Add(Name, Value) else raise EJclMsBuildError.CreateResFmt(@RsELocateXmlElem, [Name]); end; @@ -819,6 +822,8 @@ begin AXml := TJclSimpleXML.Create; try + AXml.Options := AXml.Options - [sxoAutoEncodeValue,sxoAutoEncodeEntity]; + AXml.OnEncodeValue := XMLEncodeValue; AXml.LoadFromFile(AFileName, Encoding, CodePage); except AXml.Free; @@ -1779,10 +1784,13 @@ if Assigned(FOnImport) then FOnImport(Self, Project, SubXml, SubOwnsXml); + if (Project <> '') or (SubXml <> nil) then // abort if both are not assigned try if not Assigned(SubXml) then begin SubXml := TJclSimpleXML.Create; + SubXml.Options := SubXml.Options - [sxoAutoEncodeValue,sxoAutoEncodeEntity]; + SubXml.OnEncodeValue := XMLEncodeValue; SubXml.LoadFromFile(Project); SubOwnsXml := True; end; @@ -2289,7 +2297,8 @@ if CurrentFileName = ProjectFileName then begin Index := Properties.IndexOfName(XmlElem.Name); - Properties.Objects[Index] := XmlElem; + if Index >= 0 then + Properties.Objects[Index] := XmlElem; end; end; end; @@ -2595,6 +2604,12 @@ Xml.SaveToFile(ProjectFileName); end; +procedure TJclMsBuildParser.XMLEncodeValue(Sender: TObject; var Value: string); +begin + Value := SimpleXMLEncode(Value); + StrReplace(Value, ''', NativeSingleQuote, [rfReplaceAll]); +end; + {$IFDEF UNITVERSIONING} initialization RegisterUnitVersion(HInstance, UnitVersioning); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-13 19:26:00
|
Revision: 3579 http://jcl.svn.sourceforge.net/jcl/?rev=3579&view=rev Author: outchy Date: 2011-08-13 19:25:52 +0000 (Sat, 13 Aug 2011) Log Message: ----------- The library search, library browsing, unit output, include, VCL include, DCP and BPL directories may be different in different targets. Modified Paths: -------------- trunk/jcl/install/JclInstall.pas trunk/jcl/source/common/JclDevToolsResources.pas trunk/jcl/source/common/JclIDEUtils.pas Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2011-08-13 15:25:15 UTC (rev 3578) +++ trunk/jcl/install/JclInstall.pas 2011-08-13 19:25:52 UTC (rev 3579) @@ -147,7 +147,7 @@ FDistribution: TJclDistribution; FTarget: TJclBorRADToolInstallation; FTargetName: string; - FTargetPlatform: TJclBorPlatform; + FTargetPlatform: TJclBDSPlatform; FIncludeFileName: string; FGUIPage: IJediInstallPage; FGUI: IJediInstallGUI; @@ -173,8 +173,8 @@ function GetProfilesTarget(Index: Integer): TJclBorRADToolInstallation; protected constructor Create(JclDistribution: TJclDistribution; - InstallTarget: TJclBorRADToolInstallation; ATargetPlatform: TJclBorPlatform = bp32bit; - const AGUIPage: IJediInstallPage = nil); + InstallTarget: TJclBorRADToolInstallation; ATargetPlatform: TJclBDSPlatform; + const AGUIPage: IJediInstallPage); function CompileLibraryUnits(const SubDir: string; Debug: Boolean): Boolean; function CompilePackage(const Name: string): Boolean; function CompileApplication(FileName: string): Boolean; @@ -206,7 +206,7 @@ property IncludeFileName: string read FIncludeFileName; property GUIPage: IJediInstallPage read FGUIPage; property GUI: IJediInstallGUI read FGUI; - property TargetPlatform: TJclBorPlatform read FTargetPlatform; + property TargetPlatform: TJclBDSPlatform read FTargetPlatform; property Enabled: Boolean read GetEnabled; property OptionCheckedById[Id: Integer]: Boolean read GetOptionCheckedById; property OptionChecked[Option: TInstallerOption]: Boolean read GetOptionChecked; @@ -355,6 +355,7 @@ JclFileUtils, JclStrings, JclCompilerUtils, JclContainerIntf, + JclDevToolsResources, JclPreProcessorParser, JediInstallResources, JclInstallResources; @@ -625,7 +626,7 @@ //=== { TJclInstallation } =================================================== constructor TJclInstallation.Create(JclDistribution: TJclDistribution; - InstallTarget: TJclBorRADToolInstallation; ATargetPlatform: TJclBorPlatform; + InstallTarget: TJclBorRADToolInstallation; ATargetPlatform: TJclBDSPlatform; const AGUIPage: IJediInstallPage); begin inherited Create; @@ -645,15 +646,17 @@ or ((Target.VersionNumber >= 3) and (bpDelphi32 in Target.Personalities)); case TargetPlatform of - //bp32bit: + bpWin32: ; // begin // FTargetName := Format('%s %s', [FTargetName, Personality32Bit]); // LibDirMask := LibDirMask + '.x86'; // end; - bp64bit: + bpWin64: begin FTargetName := Format('%s %s', [FTargetName, Personality64Bit]); end; + else + raise EJclBorRADException.CreateRes(@RsEPlatformNotValid); end; FLibReleaseDir := MakePath(Distribution.LibReleaseDirMask); @@ -907,7 +910,7 @@ if bpBCBuilder32 in Target.Personalities then begin AddOption(joJCLCopyHppFiles, [goChecked], OptionData[joJCLMake].Id, - Format(LoadResString(OptionData[joJCLCopyHppFiles].Caption), [Target.VclIncludeDir]), + Format(LoadResString(OptionData[joJCLCopyHppFiles].Caption), [Target.VclIncludeDir[FTargetPlatform]]), LoadResString(OptionData[joJCLCopyHppFiles].Hint)); AddOption(joJCLCheckHppFiles, [goChecked], joJCLMake); end; @@ -964,12 +967,12 @@ begin AddOption(joJCLDualPackages, [goStandAloneParent, goChecked], Parent); AddOption(joJCLCopyPackagesHppFiles, [goChecked], OptionData[joJCLDualPackages].Id, - Format(LoadResString(OptionData[joJCLCopyPackagesHppFiles].Caption), [Target.VclIncludeDir]), + Format(LoadResString(OptionData[joJCLCopyPackagesHppFiles].Caption), [Target.VclIncludeDir[FTargetPlatform]]), LoadResString(OptionData[joJCLCopyPackagesHppFiles].Hint)); end else AddOption(joJCLCopyPackagesHppFiles, [goChecked], OptionData[Parent].Id, - Format(LoadResString(OptionData[joJCLCopyPackagesHppFiles].Caption), [Target.VclIncludeDir]), + Format(LoadResString(OptionData[joJCLCopyPackagesHppFiles].Caption), [Target.VclIncludeDir[FTargetPlatform]]), LoadResString(OptionData[joJCLCopyPackagesHppFiles].Hint)); end; @@ -1133,7 +1136,7 @@ StoredValue := AConfiguration.OptionAsStringByName[TargetName, OptionNameBPLPath]; if StoredValue = '' then - StoredValue := Target.BPLOutputPath; + StoredValue := Target.BPLOutputPath[FTargetPlatform]; GUIPage.Directories[FGUIBPLPathIndex] := StoredValue; if Target.RadToolKind = brCppBuilder then StoredValue := AConfiguration.OptionAsStringByName[TargetName, OptionNameBPIPath] @@ -1268,7 +1271,7 @@ Result := CheckDirectory(GetBplPath, @RsLogInvalidBplPath) and CheckDirectory(GetDcpPath, @RsLogInvalidDcpPath); if OptionChecked[joJCLCopyHppFiles] or OptionChecked[joJCLCopyPackagesHppFiles] then - Result := Result and CheckDirectory(Target.VclIncludeDir, @RsLogInvalidHppPath); + Result := Result and CheckDirectory(Target.VclIncludeDir[FTargetPlatform], @RsLogInvalidHppPath); end; end; @@ -1416,7 +1419,7 @@ if OptionChecked[joJCLEnvLibPath] then begin MarkOptionBegin(joJCLEnvLibPath); - Result := ATarget.AddToLibrarySearchPath(FLibReleaseDir) and ATarget.AddToLibrarySearchPath(Distribution.JclIncludeDir); + Result := ATarget.AddToLibrarySearchPath(FLibReleaseDir, FTargetPlatform) and ATarget.AddToLibrarySearchPath(Distribution.JclIncludeDir, FTargetPlatform); if Result then begin WriteLog(Format(LoadResString(@RsLogAddLibrarySearchPath2), [FLibReleaseDir, Distribution.JclIncludeDir])); @@ -1425,8 +1428,8 @@ and OptionChecked[joJCLDualPackages] then with TJclBDSInstallation(ATarget) do begin - Result := AddToCppSearchPath(FLibReleaseDir) and AddToCppSearchPath(Distribution.JclIncludeDir) and - ((IDEVersionNumber < 5) or AddToCppLibraryPath(FLibReleaseDir)); + Result := AddToCppSearchPath(FLibReleaseDir, FTargetPlatform) and AddToCppSearchPath(Distribution.JclIncludeDir, FTargetPlatform) and + ((IDEVersionNumber < 5) or AddToCppLibraryPath(FLibReleaseDir, FTargetPlatform)); if Result then WriteLog(Format(LoadResString(@RsLogAddCppSearchPath2), [FLibReleaseDir, Distribution.JclIncludeDir])) else @@ -1435,7 +1438,7 @@ {$ENDIF MSWINDOWS} if ATarget.IsTurboExplorer then begin - Result := ATarget.AddToLibrarySearchPath(Distribution.JclSourcePath); + Result := ATarget.AddToLibrarySearchPath(Distribution.JclSourcePath, FTargetPlatform); if Result then WriteLog(Format(LoadResString(@RsLogAddLibrarySearchPath1), [Distribution.JclSourcePath])) else @@ -1450,7 +1453,7 @@ if Result and OptionChecked[joJCLEnvBrowsingPath] then begin MarkOptionBegin(joJCLEnvBrowsingPath); - Result := ATarget.AddToLibraryBrowsingPath(Distribution.JclSourcePath); + Result := ATarget.AddToLibraryBrowsingPath(Distribution.JclSourcePath, FTargetPlatform); if Result then begin WriteLog(Format(LoadResString(@RsLogAddLibraryBrowsingPath), [Distribution.JclSourcePath])); @@ -1459,7 +1462,7 @@ and OptionChecked[joJCLDualPackages] then with TJclBDSInstallation(ATarget) do begin - Result := AddToCppBrowsingPath(Distribution.JclSourcePath); + Result := AddToCppBrowsingPath(Distribution.JclSourcePath, FTargetPlatform); if Result then WriteLog(Format(LoadResString(@RsLogAddCppBrowsingPath), [Distribution.JclSourcePath])) else @@ -1475,7 +1478,7 @@ if Result and OptionChecked[joJCLEnvDebugDCUPath] then begin MarkOptionBegin(joJCLEnvDebugDCUPath); - Result := ATarget.AddToDebugDCUPath(FLibDebugDir); + Result := ATarget.AddToDebugDCUPath(FLibDebugDir, FTargetPlatform); if Result then WriteLog(Format(LoadResString(@RsLogAddDebugDCUPath), [FLibDebugDir])) else @@ -1542,7 +1545,7 @@ {$ENDIF ~MSWINDOWS} Target.BCC32.Options.Add('-w-par'); // warning Target.BCC32.Options.Add('-w-aus'); // warning - Target.BCC32.AddPathOption('I', Format('%s%s%s%sinclude%s%s', [Distribution.JclSourcePath, DirSeparator, Target.RootDir, DirDelimiter, DirSeparator, Target.VclIncludeDir])); + Target.BCC32.AddPathOption('I', Format('%s%s%s%sinclude%s%s', [Distribution.JclSourcePath, DirSeparator, Target.RootDir, DirDelimiter, DirSeparator, Target.VclIncludeDir[FTargetPlatform]])); Options := StringsToStr(Target.BCC32.Options, NativeSpace); Result := Target.BCC32.Execute(Options + ' "jcl_a2z.cpp"') and Target.BCC32.Execute(Options + ' "jcl_z2a.cpp"'); @@ -2007,8 +2010,8 @@ procedure RemoveEnvironment(ATarget: TJclBorRADToolInstallation); begin //ioJclEnvLibPath - if ATarget.RemoveFromLibrarySearchPath(FLibReleaseDir) and - ATarget.RemoveFromLibrarySearchPath(Distribution.JclIncludeDir) then + if ATarget.RemoveFromLibrarySearchPath(FLibReleaseDir, FTargetPlatform) and + ATarget.RemoveFromLibrarySearchPath(Distribution.JclIncludeDir, FTargetPlatform) then WriteLog(Format(LoadResString(@RsLogDelLibrarySearchPath2), [FLibReleaseDir, Distribution.JclIncludeDir])) else WriteLog(LoadResString(@RsLogFailedDelLibrarySearchPath)); @@ -2016,9 +2019,9 @@ if (ATarget.RadToolKind = brBorlandDevStudio) and (bpBCBuilder32 in ATarget.Personalities) then with TJclBDSInstallation(ATarget) do begin - if RemoveFromCppSearchPath(FLibReleaseDir) and - RemoveFromCppSearchPath(Distribution.JclIncludeDir) and - ((IDEVersionNumber < 5) or RemoveFromCppLibraryPath(FLibReleaseDir)) then + if RemoveFromCppSearchPath(FLibReleaseDir, FTargetPlatform) and + RemoveFromCppSearchPath(Distribution.JclIncludeDir, FTargetPlatform) and + ((IDEVersionNumber < 5) or RemoveFromCppLibraryPath(FLibReleaseDir, FTargetPlatform)) then WriteLog(Format(LoadResString(@RsLogDelCppSearchPath2), [FLibReleaseDir, Distribution.JclIncludeDir])) else WriteLog(LoadResString(@RsLogFailedDelCppSearchPath)); @@ -2026,11 +2029,11 @@ {$ENDIF MSWINDOWS} //ioJclEnvBrowsingPath - if ATarget.RemoveFromLibraryBrowsingPath(Distribution.JclSourcePath) then + if ATarget.RemoveFromLibraryBrowsingPath(Distribution.JclSourcePath, FTargetPlatform) then WriteLog(Format(LoadResString(@RsLogDelLibraryBrowsingPath), [Distribution.JclSourcePath])) else WriteLog(LoadResString(@RsLogFailedDelLibraryBrowsingPath)); - if ATarget.RemoveFromLibraryBrowsingPath(Distribution.JclOldSourcePath) then + if ATarget.RemoveFromLibraryBrowsingPath(Distribution.JclOldSourcePath, FTargetPlatform) then WriteLog(Format(LoadResString(@RsLogDelLibraryBrowsingPath), [Distribution.JclOldSourcePath])) else WriteLog(LoadResString(@RsLogFailedDelLibraryBrowsingPath)); @@ -2038,11 +2041,11 @@ if (ATarget.RadToolKind = brBorlandDevStudio) and (bpBCBuilder32 in ATarget.Personalities) then with TJclBDSInstallation(ATarget) do begin - if RemoveFromCppBrowsingPath(Distribution.JclSourcePath) then + if RemoveFromCppBrowsingPath(Distribution.JclSourcePath, FTargetPlatform) then WriteLog(Format(LoadResString(@RsLogDelCppBrowsingPath), [Distribution.JclSourcePath])) else WriteLog(LoadResString(@RsLogFailedDelCppBrowsingPath)); - if RemoveFromCppBrowsingPath(Distribution.JclOldSourcePath) then + if RemoveFromCppBrowsingPath(Distribution.JclOldSourcePath, FTargetPlatform) then WriteLog(Format(LoadResString(@RsLogDelCppBrowsingPath), [Distribution.JclOldSourcePath])) else WriteLog(LoadResString(@RsLogFailedDelCppBrowsingPath)); @@ -2050,7 +2053,7 @@ {$ENDIF MSWINDOWS} //ioJclEnvDebugDCUPath - if ATarget.RemoveFromDebugDCUPath(FLibDebugDir) then + if ATarget.RemoveFromDebugDCUPath(FLibDebugDir, FTargetPlatform) then WriteLog(Format(LoadResString(@RsLogDelDebugDCUPath), [FLibDebugDir])) else WriteLog(LoadResString(@RsLogFailedDelDebugDCUPath)); @@ -2360,7 +2363,7 @@ if Assigned(AConfiguration) then Result := AConfiguration.OptionAsStringByName[TargetName, OptionNameBPLPath] else - Result := Target.BPLOutputPath; + Result := Target.BPLOutputPath[FTargetPlatform]; end; {$IFDEF MSWINDOWS} if (Target.RadToolKind <> brBorlandDevStudio) or (Target.VersionNumber < 3) then @@ -2588,7 +2591,7 @@ //Compiler.AddPathOption('NH', FIncludeDir); // .hpp files Compiler.AddPathOption('NO', UnitOutputDir); // .obj files if TJclBDSInstallation(Target).DualPackageInstallation and OptionChecked[joJCLCopyPackagesHppFiles] then - Compiler.AddPathOption('N1',Target.VclIncludeDir); + Compiler.AddPathOption('N1',Target.VclIncludeDir[FTargetPlatform]); end else begin @@ -2619,7 +2622,7 @@ if OptionChecked[joJCLCopyHppFiles] then begin MarkOptionBegin(joJCLCopyHppFiles); - Result := Result and CopyHppFiles(UnitList, Target.VclIncludeDir); + Result := Result and CopyHppFiles(UnitList, Target.VclIncludeDir[FTargetPlatform]); MarkOptionEnd(joJCLCopyHppFiles, Result); end; finally @@ -2713,11 +2716,11 @@ // delete DCP files that were created to bpl path (old behavior) Result := FileDelete(PathAddSeparator(GetBPLPath) + PathExtractFileNameNoExt(Name) + CompilerExtensionDCP) or Result; // delete DCP files that were created to target dcp path (old behavior) - Result := FileDelete(PathAddSeparator(Target.DCPOutputPath) + PathExtractFileNameNoExt(Name) + CompilerExtensionDCP) or Result; + Result := FileDelete(PathAddSeparator(Target.DCPOutputPath[FTargetPlatform]) + PathExtractFileNameNoExt(Name) + CompilerExtensionDCP) or Result; // delete BPI files that were created to target dcp path (old behavior) - Result := FileDelete(PathAddSeparator(Target.DCPOutputPath) + PathExtractFileNameNoExt(Name) + CompilerExtensionBPI) or Result; + Result := FileDelete(PathAddSeparator(Target.DCPOutputPath[FTargetPlatform]) + PathExtractFileNameNoExt(Name) + CompilerExtensionBPI) or Result; // delete LIB files that were created to target dcp path (old behaviour) - Result := FileDelete(PathAddSeparator(Target.DCPOutputPath) + PathExtractFileNameNoExt(Name) + CompilerExtensionLIB) or Result; + Result := FileDelete(PathAddSeparator(Target.DCPOutputPath[FTargetPlatform]) + PathExtractFileNameNoExt(Name) + CompilerExtensionLIB) or Result; // TODO : evtl. remove .HPP Files if Result then @@ -2744,7 +2747,7 @@ if OptionChecked[joJCLCopyPackagesHppFiles] then //begin // MarkOptionBegin(joJCLCopyPackagesHppFiles); - Target.Make.AddPathOption('DHPPDIR=', Target.VclIncludeDir); + Target.Make.AddPathOption('DHPPDIR=', Target.VclIncludeDir[FTargetPlatform]); // MarkOptionEnd(joJCLCopyPackagesHppFiles, True); //end; end; @@ -3064,7 +3067,7 @@ begin if Supported then try - Inst := TJclInstallation.Create(Self, Target); + Inst := TJclInstallation.Create(Self, Target, bpWin32, nil); FTargetInstalls.Add(Inst); except end; Modified: trunk/jcl/source/common/JclDevToolsResources.pas =================================================================== --- trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-13 15:25:15 UTC (rev 3578) +++ trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-13 19:25:52 UTC (rev 3579) @@ -127,7 +127,8 @@ RsENotABcbProject = '%s not a C++Builder project source file'; RsENoSupportedPersonality = 'No personalities supported'; RsEDualPackageNotSupported = 'This installation of %s doesn''t support dual packages'; - RsEx64PlatformNotValid = 'This installation cannot generate x64 binaries'; + RsEx64PlatformNotValid = 'This installation cannot generate binaries for Win64'; + RsEPlatformNotValid = 'This installation cannot generate binaries for unknown target'; {$IFDEF MSWINDOWS} RsENoOpenHelp = 'open help not present in Borland Developer Studio'; {$ENDIF MSWINDOWS} Modified: trunk/jcl/source/common/JclIDEUtils.pas =================================================================== --- trunk/jcl/source/common/JclIDEUtils.pas 2011-08-13 15:25:15 UTC (rev 3578) +++ trunk/jcl/source/common/JclIDEUtils.pas 2011-08-13 19:25:52 UTC (rev 3579) @@ -1,4 +1,4 @@ -{**************************************************************************************************} +{**************************************************************************************************} { } { Project JEDI Code Library (JCL) } { } @@ -155,7 +155,7 @@ TJclBorDesigners = set of TJClBorDesigner; - TJclBorPlatform = (bp32bit, bp64bit); + TJclBDSPlatform = (bpWin32, bpWin64); const JclBorPersonalityDescription: array [TJclBorPersonality] of string = @@ -388,26 +388,31 @@ procedure ReadInformation; //function AddMissingPathItems(var Path: string; const NewPath: string): Boolean; function RemoveFromPath(var Path: string; const ItemsToRemove: string): Boolean; - function GetDCPOutputPath: string; virtual; - function GetBPLOutputPath: string; virtual; + function GetDCPOutputPath(APlatform: TJclBDSPlatform): string; virtual; + function GetBPLOutputPath(APlatform: TJclBDSPlatform): string; virtual; function GetEnvironmentVariables: TStrings; virtual; - function GetVclIncludeDir: string; virtual; + function GetVclIncludeDir(APlatform: TJclBDSPlatform): string; virtual; function GetName: string; virtual; procedure OutputString(const AText: string); function OutputFileDelete(const FileName: string): Boolean; procedure SetOutputCallback(const Value: TTextHandler); virtual; - function GetDebugDCUPath: TJclBorRADToolPath; virtual; - procedure SetDebugDCUPath(const Value: TJclBorRADToolPath); virtual; - function GetLibrarySearchPath: TJclBorRADToolPath; virtual; - procedure SetLibrarySearchPath(const Value: TJclBorRADToolPath); virtual; - function GetLibraryBrowsingPath: TJclBorRADToolPath; virtual; - procedure SetLibraryBrowsingPath(const Value: TJclBorRADToolPath); virtual; + function GetDebugDCUPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; virtual; + function GetRawDebugDCUPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; virtual; + procedure SetRawDebugDCUPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); virtual; + function GetLibrarySearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; virtual; + function GetRawLibrarySearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; virtual; + procedure SetRawLibrarySearchPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); virtual; + function GetLibraryBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; virtual; + function GetRawLibraryBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; virtual; + procedure SetRawLibraryBrowsingPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); virtual; function GetValid: Boolean; virtual; function GetLongPathBug: Boolean; function GetCompilerSettingsFormat: TJclCompilerSettingsFormat; function GetSupportsNoConfig: Boolean; + + procedure CheckWin32Only(APlatform: TJclBDSPlatform); public constructor Create(const AConfigDataLocation: string; ARootKey: Cardinal = 0); virtual; @@ -419,9 +424,9 @@ class function RadToolKind: TJclBorRadToolKind; virtual; {class} function RadToolName: string; virtual; function AnyInstanceRunning: Boolean; - function AddToDebugDCUPath(const Path: string): Boolean; - function AddToLibrarySearchPath(const Path: string): Boolean; - function AddToLibraryBrowsingPath(const Path: string): Boolean; + function AddToDebugDCUPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function AddToLibrarySearchPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function AddToLibraryBrowsingPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; function FindFolderInPath(Folder: string; List: TStrings): Integer; // package functions // install = package compile + registration @@ -456,9 +461,9 @@ function GetDefaultProjectsDir: string; virtual; function GetCommonProjectsDir: string; virtual; - function RemoveFromDebugDCUPath(const Path: string): Boolean; - function RemoveFromLibrarySearchPath(const Path: string): Boolean; - function RemoveFromLibraryBrowsingPath(const Path: string): Boolean; + function RemoveFromDebugDCUPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function RemoveFromLibrarySearchPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function RemoveFromLibraryBrowsingPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; function SubstitutePath(const Path: string): string; function SupportsVisualCLX: Boolean; function SupportsVCL: Boolean; @@ -473,9 +478,10 @@ property Make: IJclCommandLineTool read GetMake; // Paths property BinFolderName: string read FBinFolderName; - property BPLOutputPath: string read GetBPLOutputPath; - property DebugDCUPath: TJclBorRADToolPath read GetDebugDCUPath write SetDebugDCUPath; - property DCPOutputPath: string read GetDCPOutputPath; + property BPLOutputPath[APlatform: TJclBDSPlatform]: string read GetBPLOutputPath; + property DebugDCUPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetDebugDCUPath {$IFDEF KEEP_DEPRECATED}write SetRawDebugDCUPath{$ENDIF}; + property RawDebugDCUPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetRawDebugDCUPath write SetRawDebugDCUPath; + property DCPOutputPath[APlatform: TJclBDSPlatform]: string read GetDCPOutputPath; property DefaultProjectsDir: string read GetDefaultProjectsDir; property CommonProjectsDir: string read GetCommonProjectsDir; // @@ -489,8 +495,10 @@ property IdeExeFileName: string read GetIdeExeFileName; property InstalledUpdatePack: Integer read FInstalledUpdatePack; property LatestUpdatePack: Integer read GetLatestUpdatePack; - property LibrarySearchPath: TJclBorRADToolPath read GetLibrarySearchPath write SetLibrarySearchPath; - property LibraryBrowsingPath: TJclBorRADToolPath read GetLibraryBrowsingPath write SetLibraryBrowsingPath; + property LibrarySearchPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetLibrarySearchPath {$IFDEF KEEP_DEPRECATED}write SetRawLibrarySearchPath{$ENDIF}; + property RawLibrarySearchPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetRawLibrarySearchPath write SetRawLibrarySearchPath; + property LibraryBrowsingPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetLibraryBrowsingPath {$IFDEF KEEP_DEPRECATED}write SetRawLibraryBrowsingPath{$ENDIF}; + property RawLibraryBrowsingPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetRawLibraryBrowsingPath write SetRawLibraryBrowsingPath; {$IFDEF MSWINDOWS} property OpenHelp: TJclBorlandOpenHelp read FOpenHelp; {$ENDIF MSWINDOWS} @@ -509,7 +517,7 @@ property RootDir: string read FRootDir; property UpdateNeeded: Boolean read GetUpdateNeeded; property Valid: Boolean read GetValid; - property VclIncludeDir: string read GetVclIncludeDir; + property VclIncludeDir[APlatform: TJclBDSPlatform]: string read GetVclIncludeDir; property IDEVersionNumber: Integer read FIDEVersionNumber; property IDEVersionNumberStr: string read FIDEVersionNumberStr; property VersionNumber: Integer read FVersionNumber; @@ -560,37 +568,44 @@ FPdbCreate: Boolean; procedure SetDualPackageInstallation(const Value: Boolean); function GetCppPathsKeyName: string; - function GetCppBrowsingPath: TJclBorRADToolPath; - function GetCppSearchPath: TJclBorRADToolPath; - function GetCppLibraryPath: TJclBorRADToolPath; - function GetCppIncludePath: TJclBorRADToolPath; - procedure SetCppBrowsingPath(const Value: TJclBorRADToolPath); - procedure SetCppSearchPath(const Value: TJclBorRADToolPath); - procedure SetCppLibraryPath(const Value: TJclBorRADToolPath); - procedure SetCppIncludePath(const Value: TJclBorRADToolPath); + function GetCppBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; + function GetRawCppBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; + function GetCppSearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; + function GetRawCppSearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; + function GetCppLibraryPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; + function GetRawCppLibraryPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; + function GetCppIncludePath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; + function GetRawCppIncludePath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; + procedure SetRawCppBrowsingPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); + procedure SetRawCppSearchPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); + procedure SetRawCppLibraryPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); + procedure SetRawCppIncludePath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); function GetMaxDelphiCLRVersion: string; function GetDCCIL: TJclDCCIL; function GetMsBuildEnvOptionsFileName: string; - function GetMsBuildEnvOption(const OptionName: string): string; - procedure SetMsBuildEnvOption(const OptionName, Value: string); + function GetMsBuildEnvOption(const OptionName: string; APlatform: TJclBDSPlatform; Raw: Boolean): string; + procedure SetMsBuildEnvOption(const OptionName, Value: string; APlatform: TJclBDSPlatform); protected - function GetDCPOutputPath: string; override; - function GetBPLOutputPath: string; override; + function GetDCPOutputPath(APlatform: TJclBDSPlatform): string; override; + function GetBPLOutputPath(APlatform: TJclBDSPlatform): string; override; function GetEnvironmentVariables: TStrings; override; function CompileDelphiPackage(const PackageName, BPLPath, DCPPath, ExtraOptions: string): Boolean; override; function CompileDelphiProject(const ProjectName, OutputDir: string; const DcpSearchPath: string): Boolean; override; - function GetVclIncludeDir: string; override; + function GetVclIncludeDir(APlatform: TJclBDSPlatform): string; override; function GetName: string; override; procedure SetOutputCallback(const Value: TTextHandler); override; - function GetDebugDCUPath: TJclBorRADToolPath; override; - procedure SetDebugDCUPath(const Value: TJclBorRADToolPath); override; - function GetLibrarySearchPath: TJclBorRADToolPath; override; - procedure SetLibrarySearchPath(const Value: TJclBorRADToolPath); override; - function GetLibraryBrowsingPath: TJclBorRADToolPath; override; - procedure SetLibraryBrowsingPath(const Value: TJclBorRADToolPath); override; + function GetDebugDCUPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; override; + function GetRawDebugDCUPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; override; + procedure SetRawDebugDCUPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); override; + function GetLibrarySearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; override; + function GetRawLibrarySearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; override; + procedure SetRawLibrarySearchPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); override; + function GetLibraryBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; override; + function GetRawLibraryBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; override; + procedure SetRawLibraryBrowsingPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); override; function GetValid: Boolean; override; public @@ -606,26 +621,30 @@ class function GetCommonProjectsDirectory(const RootDir: string; IDEVersionNumber: Integer): string; {class }function RadToolName: string; override; - function AddToCppSearchPath(const Path: string): Boolean; - function AddToCppBrowsingPath(const Path: string): Boolean; - function AddToCppLibraryPath(const Path: string): Boolean; - function AddToCppIncludePath(const Path: string): Boolean; - function RemoveFromCppSearchPath(const Path: string): Boolean; - function RemoveFromCppBrowsingPath(const Path: string): Boolean; - function RemoveFromCppLibraryPath(const Path: string): Boolean; - function RemoveFromCppIncludePath(const Path: string): Boolean; + function AddToCppSearchPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function AddToCppBrowsingPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function AddToCppLibraryPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function AddToCppIncludePath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function RemoveFromCppSearchPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function RemoveFromCppBrowsingPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function RemoveFromCppLibraryPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; + function RemoveFromCppIncludePath(const Path: string; APlatform: TJclBDSPlatform): Boolean; - property CppSearchPath: TJclBorRADToolPath read GetCppSearchPath write SetCppSearchPath; - property CppBrowsingPath: TJclBorRADToolPath read GetCppBrowsingPath write SetCppBrowsingPath; + property CppSearchPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetCppSearchPath {$IFDEF KEEP_DEPRECATED}write SetRawCppSearchPath{$ENDIF}; + property RawCppSearchPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetRawCppSearchPath write SetRawCppSearchPath; + property CppBrowsingPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetCppBrowsingPath {$IFDEF KEEP_DEPRECATED}write SetRawCppBrowsingPath{$ENDIF}; + property RawCppBrowsingPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetRawCppBrowsingPath write SetRawCppBrowsingPath; // Only exists in BDS 5 and upper - property CppLibraryPath: TJclBorRADToolPath read GetCppLibraryPath write SetCppLibraryPath; - property CppIncludePath: TJclBorRADToolPath read GetCppIncludePath write SetCppIncludePath; + property CppLibraryPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetCppLibraryPath {$IFDEF KEEP_DEPRECATED}write SetRawCppLibraryPath{$ENDIF}; + property RawCppLibraryPath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetRawCppLibraryPath write SetRawCppLibraryPath; + property CppIncludePath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetCppIncludePath {$IFDEF KEEP_DEPRECATED}write SetRawCppIncludePath{$ENDIF}; + property RawCppIncludePath[APlatform: TJclBDSPlatform]: TJclBorRADToolPath read GetRawCppIncludePath write SetRawCppIncludePath; function RegisterPackage(const BinaryFileName, Description: string): Boolean; override; function UnregisterPackage(const BinaryFileName: string): Boolean; override; function CleanPackageCache(const BinaryFileName: string): Boolean; - function CompileDelphiDotNetProject(const ProjectName, OutputDir: string; PEFormat: TJclBorPlatform = bp32bit; + function CompileDelphiDotNetProject(const ProjectName, OutputDir: string; PEFormat: TJclBDSPlatform = bpWin32; const ExtraOptions: string = ''): Boolean; property DualPackageInstallation: Boolean read FDualPackageInstallation write SetDualPackageInstallation; @@ -1615,46 +1634,46 @@ inherited Destroy; end; -function TJclBorRADToolInstallation.AddToDebugDCUPath(const Path: string): Boolean; +function TJclBorRADToolInstallation.AddToDebugDCUPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempDebugDCUPath: TJclBorRADToolPath; + TempRawDebugDCUPath: TJclBorRADToolPath; begin if Path <> '' then begin - TempDebugDCUPath := DebugDCUPath; - PathListIncludeItems(TempDebugDCUPath, Path); + TempRawDebugDCUPath := RawDebugDCUPath[APlatform]; + PathListIncludeItems(TempRawDebugDCUPath, Path); Result := True; - DebugDCUPath := TempDebugDCUPath; + RawDebugDCUPath[APlatform] := TempRawDebugDCUPath; end else Result := False; end; -function TJclBorRADToolInstallation.AddToLibrarySearchPath(const Path: string): Boolean; +function TJclBorRADToolInstallation.AddToLibrarySearchPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempLibraryPath: TJclBorRADToolPath; + TempRawLibraryPath: TJclBorRADToolPath; begin if Path <> '' then begin - TempLibraryPath := LibrarySearchPath; - PathListIncludeItems(TempLibraryPath, Path); + TempRawLibraryPath := RawLibrarySearchPath[APlatform]; + PathListIncludeItems(TempRawLibraryPath, Path); Result := True; - LibrarySearchPath := TempLibraryPath; + RawLibrarySearchPath[APlatform] := TempRawLibraryPath; end else Result := False; end; -function TJclBorRADToolInstallation.AddToLibraryBrowsingPath(const Path: string): Boolean; +function TJclBorRADToolInstallation.AddToLibraryBrowsingPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempLibraryPath: TJclBorRADToolPath; + TempRawLibraryPath: TJclBorRADToolPath; begin if Path <> '' then begin - TempLibraryPath := LibraryBrowsingPath; - PathListIncludeItems(TempLibraryPath, Path); + TempRawLibraryPath := RawLibraryBrowsingPath[APlatform]; + PathListIncludeItems(TempRawLibraryPath, Path); Result := True; - LibraryBrowsingPath := TempLibraryPath; + RawLibraryBrowsingPath[APlatform] := TempRawLibraryPath; end else Result := False; @@ -1687,6 +1706,17 @@ StrToStrings(Path, PathSep, List); end; +procedure TJclBorRADToolInstallation.CheckWin32Only(APlatform: TJclBDSPlatform); +begin + case APlatform of + bpWin32: ; + bpWin64: + raise EJclBorRADException.CreateRes(@RsEx64PlatformNotValid); + else + raise EJclBorRADException.CreateRes(@RsEPlatformNotValid); + end; +end; + function TJclBorRADToolInstallation.CompileBCBPackage(const PackageName, BPLPath, DCPPath: string): Boolean; var SaveDir, PackagePath, MakeFileName: string; @@ -1857,8 +1887,9 @@ end; end; -function TJclBorRADToolInstallation.GetBPLOutputPath: string; +function TJclBorRADToolInstallation.GetBPLOutputPath(APlatform: TJclBDSPlatform): string; begin + CheckWin32Only(APlatform); Result := SubstitutePath(ConfigData.ReadString(LibraryKeyName, LibraryBPLOutputValueName, '')); end; @@ -1907,18 +1938,20 @@ if not (clDcc32 in CommandLineTools) then raise EJclBorRadException.CreateResFmt(@RsENotFound, [Dcc32ExeName]); FDCC32 := TJclDCC32.Create(BinFolderName, LongPathBug, CompilerSettingsFormat, - SupportsNoConfig, DCPOutputPath, LibFolderName, LibDebugFolderName, ObjFolderName); + SupportsNoConfig, DCPOutputPath[bpWin32], LibFolderName, LibDebugFolderName, ObjFolderName); end; Result := FDCC32; end; -function TJclBorRADToolInstallation.GetDCPOutputPath: string; +function TJclBorRADToolInstallation.GetDCPOutputPath(APlatform: TJclBDSPlatform): string; begin + CheckWin32Only(APlatform); Result := SubstitutePath(ConfigData.ReadString(LibraryKeyName, LibraryDCPOutputValueName, '')); end; -function TJclBorRADToolInstallation.GetDebugDCUPath: string; +function TJclBorRADToolInstallation.GetDebugDCUPath(APlatform: TJclBDSPlatform): string; begin + CheckWin32Only(APlatform); Result := ConfigData.ReadString(DebuggingKeyName, DebugDCUPathValueName, ''); end; @@ -2055,8 +2088,9 @@ {$ENDIF MSWINDOWS} end; -function TJclBorRADToolInstallation.GetLibrarySearchPath: TJclBorRADToolPath; +function TJclBorRADToolInstallation.GetLibrarySearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin + CheckWin32Only(APlatform); Result := ConfigData.ReadString(LibraryKeyName, LibrarySearchPathValueName, ''); end; @@ -2079,8 +2113,9 @@ Result := FMake; end; -function TJclBorRADToolInstallation.GetLibraryBrowsingPath: TJclBorRADToolPath; +function TJclBorRADToolInstallation.GetLibraryBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin + CheckWin32Only(APlatform); Result := ConfigData.ReadString(LibraryKeyName, LibraryBrowsingPathValueName, ''); end; @@ -2096,6 +2131,24 @@ Result := FPalette; end; +function TJclBorRADToolInstallation.GetRawDebugDCUPath(APlatform: TJclBDSPlatform): string; +begin + CheckWin32Only(APlatform); + Result := GetDebugDCUPath(APlatform); +end; + +function TJclBorRADToolInstallation.GetRawLibrarySearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; +begin + CheckWin32Only(APlatform); + Result := GetLibrarySearchPath(APlatform); +end; + +function TJclBorRADToolInstallation.GetRawLibraryBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; +begin + CheckWin32Only(APlatform); + Result := GetLibraryBrowsingPath(APlatform); +end; + function TJclBorRADToolInstallation.GetRepository: TJclBorRADToolRepository; begin if not Assigned(FRepository) then @@ -2123,8 +2176,9 @@ Result := (ConfigData.FileName <> '') and (RootDir <> '') and FileExists(IdeExeFileName); end; -function TJclBorRADToolInstallation.GetVclIncludeDir: string; +function TJclBorRADToolInstallation.GetVclIncludeDir(APlatform: TJclBDSPlatform): string; begin + CheckWin32Only(APlatform); Result := Format(VclIncludeDirName, [RootDir]); if not DirectoryExists(Result) then Result := ''; @@ -2547,31 +2601,31 @@ OutputString(LoadResString(@RsRegistrationFailed)); end; -function TJclBorRADToolInstallation.RemoveFromDebugDCUPath(const Path: string): Boolean; +function TJclBorRADToolInstallation.RemoveFromDebugDCUPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempDebugDCUPath: TJclBorRADToolPath; + TempRawDebugDCUPath: TJclBorRADToolPath; begin - TempDebugDCUPath := DebugDCUPath; - Result := RemoveFromPath(TempDebugDCUPath, Path); - DebugDCUPath := TempDebugDCUPath; + TempRawDebugDCUPath := RawDebugDCUPath[APlatform]; + Result := RemoveFromPath(TempRawDebugDCUPath, Path); + RawDebugDCUPath[APlatform] := TempRawDebugDCUPath; end; -function TJclBorRADToolInstallation.RemoveFromLibrarySearchPath(const Path: string): Boolean; +function TJclBorRADToolInstallation.RemoveFromLibrarySearchPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempLibraryPath: TJclBorRADToolPath; + TempRawLibraryPath: TJclBorRADToolPath; begin - TempLibraryPath := LibrarySearchPath; - Result := RemoveFromPath(TempLibraryPath, Path); - LibrarySearchPath := TempLibraryPath; + TempRawLibraryPath := RawLibrarySearchPath[APlatform]; + Result := RemoveFromPath(TempRawLibraryPath, Path); + RawLibrarySearchPath[APlatform] := TempRawLibraryPath; end; -function TJclBorRADToolInstallation.RemoveFromLibraryBrowsingPath(const Path: string): Boolean; +function TJclBorRADToolInstallation.RemoveFromLibraryBrowsingPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempLibraryPath: TJclBorRADToolPath; + TempRawLibraryPath: TJclBorRADToolPath; begin - TempLibraryPath := LibraryBrowsingPath; - Result := RemoveFromPath(TempLibraryPath, Path); - LibraryBrowsingPath := TempLibraryPath; + TempRawLibraryPath := RawLibraryBrowsingPath[APlatform]; + Result := RemoveFromPath(TempRawLibraryPath, Path); + RawLibraryBrowsingPath[APlatform] := TempRawLibraryPath; end; function TJclBorRADToolInstallation.RemoveFromPath(var Path: string; const ItemsToRemove: string): Boolean; @@ -2605,16 +2659,6 @@ end; end; -procedure TJclBorRADToolInstallation.SetDebugDCUPath(const Value: TJclBorRADToolPath); -begin - ConfigData.WriteString(DebuggingKeyName, DebugDCUPathValueName, Value); -end; - -procedure TJclBorRADToolInstallation.SetLibrarySearchPath(const Value: TJclBorRADToolPath); -begin - ConfigData.WriteString(LibraryKeyName, LibrarySearchPathValueName, Value); -end; - procedure TJclBorRADToolInstallation.SetOutputCallback(const Value: TTextHandler); begin FOutputCallback := Value; @@ -2632,8 +2676,21 @@ Bpr2Mak.OutputCallback := Value; end; -procedure TJclBorRADToolInstallation.SetLibraryBrowsingPath(const Value: TJclBorRADToolPath); +procedure TJclBorRADToolInstallation.SetRawDebugDCUPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); begin + CheckWin32Only(APlatform); + ConfigData.WriteString(DebuggingKeyName, DebugDCUPathValueName, Value); +end; + +procedure TJclBorRADToolInstallation.SetRawLibrarySearchPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); +begin + CheckWin32Only(APlatform); + ConfigData.WriteString(LibraryKeyName, LibrarySearchPathValueName, Value); +end; + +procedure TJclBorRADToolInstallation.SetRawLibraryBrowsingPath(APlatform: TJclBDSPlatform; const Value: TJclBorRADToolPath); +begin + CheckWin32Only(APlatform); ConfigData.WriteString(LibraryKeyName, LibraryBrowsingPathValueName, Value); end; @@ -3102,61 +3159,61 @@ inherited Destroy; end; -function TJclBDSInstallation.AddToCppBrowsingPath(const Path: string): Boolean; +function TJclBDSInstallation.AddToCppBrowsingPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempCppPath: TJclBorRADToolPath; + TempRawCppPath: TJclBorRADToolPath; begin if (bpBCBuilder32 in Personalities) and (Path <> '') then begin - TempCppPath := CppBrowsingPath; - PathListIncludeItems(TempCppPath, Path); + TempRawCppPath := RawCppBrowsingPath[APlatform]; + PathListIncludeItems(TempRawCppPath, Path); Result := True; - CppBrowsingPath := TempCppPath; + RawCppBrowsingPath[APlatform] := TempRawCppPath; end else Result := False; end; -function TJclBDSInstallation.AddToCppSearchPath(const Path: string): Boolean; +function TJclBDSInstallation.AddToCppSearchPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempCppPath: TJclBorRADToolPath; + TempRawCppPath: TJclBorRADToolPath; begin if (bpBCBuilder32 in Personalities) and (Path <> '') then begin - TempCppPath := CppSearchPath; - PathListIncludeItems(TempCppPath, Path); + TempRawCppPath := RawCppSearchPath[APlatform]; + PathListIncludeItems(TempRawCppPath, Path); Result := True; - CppSearchPath := TempCppPath; + RawCppSearchPath[APlatform] := TempRawCppPath; end else Result := False; end; -function TJclBDSInstallation.AddToCppLibraryPath(const Path: string): Boolean; +function TJclBDSInstallation.AddToCppLibraryPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempLibraryPath: TJclBorRADToolPath; + TempRawLibraryPath: TJclBorRADToolPath; begin if (bpBCBuilder32 in Personalities) and (IDEVersionNumber >= 5) and (Path <> '') then begin - TempLibraryPath := CppLibraryPath; - PathListIncludeItems(TempLibraryPath, Path); + TempRawLibraryPath := RawCppLibraryPath[APlatform]; + PathListIncludeItems(TempRawLibraryPath, Path); Result := True; - CppLibraryPath := TempLibraryPath; + RawCppLibraryPath[APlatform] := TempRawLibraryPath; end else Result := False; end; -function TJclBDSInstallation.AddToCppIncludePath(const Path: string): Boolean; +function TJclBDSInstallation.AddToCppIncludePath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempIncludePath: TJclBorRADToolPath; + TempRawIncludePath: TJclBorRADToolPath; begin if (bpBCBuilder32 in Personalities) and (IDEVersionNumber >= 5) and (Path <> '') then begin - TempIncludePath := CppIncludePath; - PathListIncludeItems(TempIncludePath, Path); + TempRawIncludePath := RawCppIncludePath[APlatform]; + PathListIncludeItems(TempRawIncludePath, Path); Result := True; - CppIncludePath := TempIncludePath; + RawCppIncludePath[APlatform] := TempRawIncludePath; end else Result := False; @@ -3190,7 +3247,7 @@ end; function TJclBDSInstallation.CompileDelphiDotNetProject(const ProjectName, - OutputDir: string; PEFormat: TJclBorPlatform; const ExtraOptions: string): Boolean; + OutputDir: string; PEFormat: TJclBDSPlatform; const ExtraOptions: string): Boolean; var DCCILOptions, PlatformOption, PdbOption: string; begin @@ -3206,14 +3263,16 @@ PlatformOption := ''; case PEFormat of - bp32bit: + bpWin32: if VersionNumber >= 3 then PlatformOption := 'x86'; - bp64bit: + bpWin64: if VersionNumber >= 3 then PlatformOption := 'x64' else raise EJclBorRADException.CreateRes(@RsEx64PlatformNotValid); + else + raise EJclBorRADException.CreateRes(@RsEPlatformNotValid); end; if PdbCreate then @@ -3281,33 +3340,34 @@ Result := inherited CompileDelphiProject(ProjectName, DcpSearchPath, OutputDir); end; -function TJclBDSInstallation.GetBPLOutputPath: string; +function TJclBDSInstallation.GetBPLOutputPath(APlatform: TJclBDSPlatform): string; begin + CheckWin32Only(APlatform); // BDS 1 (C#Builder 1) and BDS 2 (Delphi 8) don't have a valid BPL output path // set in the registry case IDEVersionNumber of 1, 2: Result := PathAddSeparator(GetDefaultProjectsDir) + 'bpl'; 3, 4: - Result := inherited GetBPLOutputPath; + Result := inherited GetBPLOutputPath(APlatform); 5: begin // C++Builder 2007 specific code - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildCBuilderBPLOutputPathNodeName)); + Result := GetMsBuildEnvOption(MsBuildCBuilderBPLOutputPathNodeName, APlatform, False); if Result = '' then - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildWin32DLLOutputPathNodeName)); + Result := GetMsBuildEnvOption(MsBuildWin32DLLOutputPathNodeName, APlatform, False); end; 6, 7: begin - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildCBuilderBPLOutputPathNodeName)); + Result := GetMsBuildEnvOption(MsBuildCBuilderBPLOutputPathNodeName, APlatform, False); if Result = '' then - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildWin32DLLOutputPathNodeName)); + Result := GetMsBuildEnvOption(MsBuildWin32DLLOutputPathNodeName, APlatform, False); end; 8: begin - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildCBuilderBPLOutputPathNodeName)); + Result := GetMsBuildEnvOption(MsBuildCBuilderBPLOutputPathNodeName, APlatform, False); if Result = '' then - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildDelphiDLLOutputPathNodeName)); + Result := GetMsBuildEnvOption(MsBuildDelphiDLLOutputPathNodeName, APlatform, False); end; end; end; @@ -3360,24 +3420,41 @@ Result := CppPathsKeyName; end; -function TJclBDSInstallation.GetCppBrowsingPath: TJclBorRADToolPath; +function TJclBDSInstallation.GetCppBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin - Result := ConfigData.ReadString(GetCppPathsKeyName, CppBrowsingPathValueName, ''); + CheckWin32Only(APlatform); + if IDEVersionNumber >= 5 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildCBuilderBrowsingPathNodeName, APlatform, False) + else + Result := ConfigData.ReadString(GetCppPathsKeyName, CppBrowsingPathValueName, ''); end; -function TJclBDSInstallation.GetCppSearchPath: TJclBorRADToolPath; +function TJclBDSInstallation.GetCppSearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin + CheckWin32Only(APlatform); + // CPP search path is only in the registry Result := ConfigData.ReadString(GetCppPathsKeyName, CppSearchPathValueName, ''); end; -function TJclBDSInstallation.GetCppLibraryPath: TJclBorRADToolPath; +function TJclBDSInstallation.GetCppLibraryPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin - Result := ConfigData.ReadString(GetCppPathsKeyName, CppLibraryPathValueName, ''); + CheckWin32Only(APlatform); + if IDEVersionNumber >= 5 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildCBuilderLibraryPathNodeName, APlatform, False) + else + Result := ConfigData.ReadString(GetCppPathsKeyName, CppLibraryPathValueName, ''); end; -function TJclBDSInstallation.GetCppIncludePath: TJclBorRADToolPath; +function TJclBDSInstallation.GetCppIncludePath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin - Result := ConfigData.ReadString(GetCppPathsKeyName, CppIncludePathValueName, ''); + CheckWin32Only(APlatform); + if IDEVersionNumber >= 5 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildCBuilderIncludePathNodeName, APlatform, False) + else + Result := ConfigData.ReadString(GetCppPathsKeyName, CppIncludePathValueName, ''); end; function TJclBDSInstallation.GetDCCIL: TJclDCCIL; @@ -3387,38 +3464,40 @@ if not (clDccIL in CommandLineTools) then raise EJclBorRadException.CreateResFmt(@RsENotFound, [DccILExeName]); FDCCIL := TJclDCCIL.Create(BinFolderName, LongPathBug, CompilerSettingsFormat, - SupportsNoConfig, DCPOutputPath, LibFolderName, LibDebugFolderName, ObjFolderName); + SupportsNoConfig, DCPOutputPath[bpWin32], LibFolderName, LibDebugFolderName, ObjFolderName); end; Result := FDCCIL; end; -function TJclBDSInstallation.GetDCPOutputPath: string; +function TJclBDSInstallation.GetDCPOutputPath(APlatform: TJclBDSPlatform): string; begin + CheckWin32Only(APlatform); case IDEVersionNumber of 1, 2: // hard-coded Result := PathAddSeparator(RootDir) + 'lib'; 3, 4: // use registry - Result := inherited GetDCPOutputPath; + Result := inherited GetDCPOutputPath(APlatform); 5, 6, 7: // use EnvOptions.proj - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildWin32DCPOutputNodeName)); + Result := GetMsBuildEnvOption(MsBuildWin32DCPOutputNodeName, APlatform, False); else // use EnvOptions.proj - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildDelphiDCPOutputNodeName)); + Result := GetMsBuildEnvOption(MsBuildDelphiDCPOutputNodeName, APlatform, False); end; end; -function TJclBDSInstallation.GetDebugDCUPath: TJclBorRADToolPath; +function TJclBDSInstallation.GetDebugDCUPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin + CheckWin32Only(APlatform); if IDEVersionNumber >= 8 then // use EnvOptions.proj - Result := GetMsBuildEnvOption(MsBuildDelphiDebugDCUPathNodeName) + Result := GetMsBuildEnvOption(MsBuildDelphiDebugDCUPathNodeName, APlatform, False) else if IDEVersionNumber >= 5 then // use EnvOptions.proj - Result := GetMsBuildEnvOption(MsBuildWin32DebugDCUPathNodeName) + Result := GetMsBuildEnvOption(MsBuildWin32DebugDCUPathNodeName, APlatform, False) else // use registry Result := ConfigData.ReadString(LibraryKeyName, BDSDebugDCUPathValueName, ''); @@ -3477,32 +3556,34 @@ Result := (inherited GetValid) and ((IDEVersionNumber < 5) or FileExists(GetMsBuildEnvOptionsFileName)); end; -function TJclBDSInstallation.GetLibraryBrowsingPath: TJclBorRADToolPath; +function TJclBDSInstallation.GetLibraryBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin + CheckWin32Only(APlatform); if IDEVersionNumber >= 8 then // use EnvOptions.proj - Result := GetMsBuildEnvOption(MsBuildDelphiBrowsingPathNodeName) + Result := GetMsBuildEnvOption(MsBuildDelphiBrowsingPathNodeName, APlatform, False) else if IDEVersionNumber >= 5 then // use EnvOptions.proj - Result := GetMsBuildEnvOption(MsBuildWin32BrowsingPathNodeName) + Result := GetMsBuildEnvOption(MsBuildWin32BrowsingPathNodeName, APlatform, False) else // use registry - Result := inherited GetLibraryBrowsingPath; + Result := inherited GetLibraryBrowsingPath(APlatform); end; -function TJclBDSInstallation.GetLibrarySearchPath: TJclBorRADToolPath; +function TJclBDSInstallation.GetLibrarySearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin + CheckWin32Only(APlatform); if IDEVersionNumber >= 8 then // use EnvOptions.proj - Result := GetMsBuildEnvOption(MsBuildDelphiLibraryPathNodeName) + Result := GetMsBuildEnvOption(MsBuildDelphiLibraryPathNodeName, APlatform, False) else if IDEVersionNumber >= 5 then // use EnvOptions.proj - Result := GetMsBuildEnvOption(MsBuildWin32LibraryPathNodeName) + Result := GetMsBuildEnvOption(MsBuildWin32LibraryPathNodeName, APlatform, False) else // use registry - Result := inherited GetLibrarySearchPath; + Result := inherited GetLibrarySearchPath(APlatform); end; function TJclBDSInstallation.GetMaxDelphiCLRVersion: string; @@ -3519,17 +3600,22 @@ Result := Format('%s ***%s***', [RadToolName, IDEVersionNumber]); end; -function TJclBDSInstallation.GetMsBuildEnvOption(const OptionName: string): string; +function TJclBDSInstallation.GetMsBuildEnvOption(const OptionName: string; APlatform: TJclBDSPlatform; Raw: Boolean): string; var EnvOptions: TJclMsBuildParser; begin + CheckWin32Only(APlatform); + Result := ''; EnvOptions := TJclMsBuildParser.Create(GetMsBuildEnvOptionsFileName); try EnvOptions.Init; EnvOptions.Parse; - Result := EnvOptions.Properties.RawValues[OptionName]; + if Raw then + Result := EnvOptions.Properties.RawValues[OptionName] + else + Result := EnvOptions.Properties.Values[OptionName]; finally EnvOptions.Free; end; @@ -3561,18 +3647,100 @@ raise EJclBorRADException.CreateRes(@RsMsBuildNotSupported); end; -function TJclBDSInstallation.GetVclIncludeDir: string; +function TJclBDSInstallation.GetRawCppBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; begin + CheckWin32Only(APlatform); + if IDEVersionNumber >= 5 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildCBuilderBrowsingPathNodeName, APlatform, True) + else + Result := ConfigData.ReadString(GetCppPathsKeyName, CppBrowsingPathValueName, ''); +end; + +function TJclBDSInstallation.GetRawCppSearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; +begin + CheckWin32Only(APlatform); + Result := GetCppSearchPath(APlatform); +end; + +function TJclBDSInstallation.GetRawCppLibraryPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; +begin + CheckWin32Only(APlatform); + if IDEVersionNumber >= 5 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildCBuilderLibraryPathNodeName, APlatform, True) + else + Result := ConfigData.ReadString(GetCppPathsKeyName, CppLibraryPathValueName, ''); +end; + +function TJclBDSInstallation.GetRawCppIncludePath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; +begin + CheckWin32Only(APlatform); + if IDEVersionNumber >= 5 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildCBuilderIncludePathNodeName, APlatform, True) + else + Result := ConfigData.ReadString(GetCppPathsKeyName, CppIncludePathValueName, ''); +end; + +function TJclBDSInstallation.GetRawDebugDCUPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; +begin + CheckWin32Only(APlatform); + if IDEVersionNumber >= 8 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildDelphiDebugDCUPathNodeName, APlatform, True) + else + if IDEVersionNumber >= 5 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildWin32DebugDCUPathNodeName, APlatform, True) + else + // use registry + Result := ConfigData.ReadString(LibraryKeyName, BDSDebugDCUPathValueName, ''); +end; + +function TJclBDSInstallation.GetRawLibraryBrowsingPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; +begin + CheckWin32Only(APlatform); + if IDEVersionNumber >= 8 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildDelphiBrowsingPathNodeName, APlatform, True) + else + if IDEVersionNumber >= 5 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildWin32BrowsingPathNodeName, APlatform, True) + else + // use registry + Result := inherited GetRawLibraryBrowsingPath(APlatform) +end; + +function TJclBDSInstallation.GetRawLibrarySearchPath(APlatform: TJclBDSPlatform): TJclBorRADToolPath; +begin + CheckWin32Only(APlatform); + if IDEVersionNumber >= 8 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildDelphiLibraryPathNodeName, APlatform, True) + else + if IDEVersionNumber >= 5 then + // use EnvOptions.proj + Result := GetMsBuildEnvOption(MsBuildWin32LibraryPathNodeName, APlatform, True) + else + // use registry + Result := inherited GetRawLibrarySearchPath(APlatform); +end; + +function TJclBDSInstallation.GetVclIncludeDir(APlatform: TJclBDSPlatform): string; +begin + CheckWin32Only(APlatform); if not (bpBCBuilder32 in Personalities) then raise EJclBorRadException.CreateResFmt(@RsEDualPackageNotSupported, [Name]); if (RadToolKind = brBorlandDevStudio) and (IDEVersionNumber >= 8) then begin - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildDelphiHPPOutputPathNodeName)); + Result := GetMsBuildEnvOption(MsBuildDelphiHPPOutputPathNodeName, APlatform, False); if Result = '' then Result := SubstitutePath('$(BDSCOMMONDIR)\hpp'); end else - Result := inherited GetVclIncludeDir; + Result := inherited GetVclIncludeDir(APlatform); end; class function TJclBDSInstallation.PackageSourceFileExtension: string; @@ -3618,177 +3786,184 @@ Result := inherited RegisterPackage(BinaryFileName, Description); end; -function TJclBDSInstallation.RemoveFromCppBrowsingPath(const Path: string): Boolean; +function TJclBDSInstallation.RemoveFromCppBrowsingPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempCppPath: TJclBorRADToolPath; + TempRawCppPath: TJclBorRADToolPath; begin if bpBCBuilder32 in Personalities then begin - TempCppPath := CppBrowsingPath; - Result := RemoveFromPath(TempCppPath, Path); - CppBrowsingPath := TempCppPath; + TempRawCppPath := RawCppBrowsingPath[APlatform]; + Result := RemoveFromPath(TempRawCppPath, Path); + RawCppBrowsingPath[APlatform] := TempRawCppPath; end else Result := False; end; -function TJclBDSInstallation.RemoveFromCppSearchPath(const Path: string): Boolean; +function TJclBDSInstallation.RemoveFromCppSearchPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempCppPath: TJclBorRADToolPath; + TempRawCppPath: TJclBorRADToolPath; begin if (bpBCBuilder32 in Personalities) and (Path <> '') then begin - TempCppPath := CppSearchPath; - Result := RemoveFromPath(TempCppPath, Path); - CppSearchPath := TempCppPath; + TempRawCppPath := RawCppSearchPath[APlatform]; + Result := RemoveFromPath(TempRawCppPath, Path); + RawCppSearchPath[APlatform] := TempRawCppPath; end else Result := False; end; -function TJclBDSInstallation.RemoveFromCppLibraryPath(const Path: string): Boolean; +function TJclBDSInstallation.RemoveFromCppLibraryPath(const Path: string; APlatform: TJclBDSPlatform): Boolean; var - TempLibraryPath: TJclBorRADToolPath; + TempRawLibraryPath: TJclBo... [truncated message content] |
From: <ou...@us...> - 2011-08-13 15:25:21
|
Revision: 3578 http://jcl.svn.sourceforge.net/jcl/?rev=3578&view=rev Author: outchy Date: 2011-08-13 15:25:15 +0000 (Sat, 13 Aug 2011) Log Message: ----------- Target elements can contain PropertyGroup and ItemGroup. Modified Paths: -------------- trunk/jcl/source/windows/JclMsBuild.pas Modified: trunk/jcl/source/windows/JclMsBuild.pas =================================================================== --- trunk/jcl/source/windows/JclMsBuild.pas 2011-08-13 14:33:37 UTC (rev 3577) +++ trunk/jcl/source/windows/JclMsBuild.pas 2011-08-13 15:25:15 UTC (rev 3578) @@ -2385,6 +2385,11 @@ if SubElem.Name = 'OnError' then ParseOnError(SubElem, Target) else + if (SubElem.Name = 'PropertyGroup') or (SubElem.Name = 'ItemGroup') then + // apparently targets can contain several other nodes + // see comments in http://msdn.microsoft.com/en-us/library/t50z2hka.aspx + // they should be ignored during the static analysis implemented in this parser + else ParseTask(SubElem, Target); end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-13 14:33:44
|
Revision: 3577 http://jcl.svn.sourceforge.net/jcl/?rev=3577&view=rev Author: outchy Date: 2011-08-13 14:33:37 +0000 (Sat, 13 Aug 2011) Log Message: ----------- JclMsBuild: - new feature to update project files with new property values; - fix some arithmetical errors during string parsing. JclCompilerUtils and JclIDEUtils: - use JclMsBuildParser to get project options; - use JclMsBuildParser to get and set environment options. Modified Paths: -------------- trunk/jcl/source/common/JclCompilerUtils.pas trunk/jcl/source/common/JclDevToolsResources.pas trunk/jcl/source/common/JclIDEUtils.pas trunk/jcl/source/windows/JclMsBuild.pas Modified: trunk/jcl/source/common/JclCompilerUtils.pas =================================================================== --- trunk/jcl/source/common/JclCompilerUtils.pas 2011-08-13 12:41:24 UTC (rev 3576) +++ trunk/jcl/source/common/JclCompilerUtils.pas 2011-08-13 14:33:37 UTC (rev 3577) @@ -222,7 +222,7 @@ {$ENDIF HAS_UNIT_LIBC} JclFileUtils, JclDevToolsResources, JclAnsiStrings, JclWideStrings, JclStrings, - JclSysInfo, JclSimpleXml; + JclSysInfo, JclSimpleXml, JclMsBuild; const // DOF options @@ -252,20 +252,13 @@ BDSProjDirectoriesNodeName = 'Directories'; // DProj options - DProjProjectExtensionsNodeName = 'ProjectExtensions'; DProjPersonalityNodeName = 'Borland.Personality'; DProjDelphiPersonalityValue = 'Delphi.Personality'; DProjDelphiDotNetPersonalityValue = 'DelphiDotNet.Personality'; - DProjPropertyGroupNodeName = 'PropertyGroup'; - DProjConditionValueName = 'Condition'; DProjUsePackageNodeName = 'DCC_UsePackage'; DProjDcuOutputDirNodeName = 'DCC_DcuOutput'; DProjUnitSearchPathNodeName = 'DCC_UnitSearchPath'; DProjDefineNodeName = 'DCC_Define'; - DProjConfigurationNodeName = 'Configuration'; - DProjPlatformNodeName = 'Platform'; - DProjProjectVersionNodeName = 'ProjectVersion'; - DProjConfigNodeName = 'Config'; DelphiLibSuffixOption = '{$LIBSUFFIX '''; DelphiDescriptionOption = '{$DESCRIPTION '''; @@ -791,24 +784,21 @@ function TJclDCC32.AddDProjOptions(const ProjectFileName: string; var ProjectOptions: TProjectOptions): Boolean; var - DProjFileName, ProjectConfiguration, ProjectPlatform, PersonalityName: string; - OptionsXmlFile: TJclSimpleXML; - ProjectExtensionsNode, PropertyGroupNode, PersonalityNode, ChildNode: TJclSimpleXMLElem; - NodeIndex: Integer; - ConditionProperty: TJclSimpleXMLProp; - Version: string; + DProjFileName, PersonalityName: string; + MsBuildOptions: TJclMsBuildParser; + ProjectExtensionsNode, PersonalityNode: TJclSimpleXMLElem; begin - Version := ''; DProjFileName := ChangeFileExt(ProjectFileName, SourceExtensionDProject); Result := FileExists(DProjFileName) and (CompilerSettingsFormat = csfMsBuild); if Result then begin - OptionsXmlFile := TJclSimpleXML.Create; + MsBuildOptions := TJclMsBuildParser.Create(DProjFileName); try - OptionsXmlFile.LoadFromFile(DProjFileName); - OptionsXmlFile.Options := OptionsXmlFile.Options - [sxoAutoCreate]; + MsBuildOptions.Init; + MsBuildOptions.Parse; + PersonalityName := ''; - ProjectExtensionsNode := OptionsXmlFile.Root.Items.ItemNamed[DProjProjectExtensionsNodeName]; + ProjectExtensionsNode := MsBuildOptions.ProjectExtensions; if Assigned(ProjectExtensionsNode) then begin PersonalityNode := ProjectExtensionsNode.Items.ItemNamed[DProjPersonalityNodeName]; @@ -818,69 +808,14 @@ if StrHasPrefix(PersonalityName, [DProjDelphiPersonalityValue]) or AnsiSameText(PersonalityName, DProjDelphiDotNetPersonalityValue) then begin - ProjectConfiguration := ''; - ProjectPlatform := ''; - for NodeIndex := 0 to OptionsXmlFile.Root.Items.Count - 1 do - begin - PropertyGroupNode := OptionsXmlFile.Root.Items.Item[NodeIndex]; - if AnsiSameText(PropertyGroupNode.Name, DProjPropertyGroupNodeName) then - begin - ConditionProperty := PropertyGroupNode.Properties.ItemNamed[DProjConditionValueName]; - if Assigned(ConditionProperty) then - begin - if ((Version = '') and (ProjectConfiguration <> '') and (ProjectPlatform <> '') and - (AnsiPos(Format('%s|%s', [ProjectConfiguration, ProjectPlatform]), ConditionProperty.Value) > 0)) - or - ((Version <> '') and (ProjectConfiguration <> '') and - (AnsiPos(ProjectConfiguration, ConditionProperty.Value) > 0)) - or - ((Version <> '') and (ProjectConfiguration <> '') and - (AnsiPos('$(Base)', ConditionProperty.Value) > 0)) then - begin - // this is the active configuration, check for overrides - ChildNode := PropertyGroupNode.Items.ItemNamed[DProjUsePackageNodeName]; - if Assigned(ChildNode) then - ProjectOptions.DynamicPackages := ChildNode.Value; - ProjectOptions.UsePackages := ProjectOptions.DynamicPackages <> ''; - ChildNode := PropertyGroupNode.Items.ItemNamed[DProjDcuOutputDirNodeName]; - if Assigned(ChildNode) then - ProjectOptions.UnitOutputDir := ChildNode.Value; - ChildNode := PropertyGroupNode.Items.ItemNamed[DProjUnitSearchPathNodeName]; - if Assigned(ChildNode) then - ProjectOptions.SearchPath := ChildNode.Value; - ChildNode := PropertyGroupNode.Items.ItemNamed[DProjDefineNodeName]; - if Assigned(ChildNode) then - ProjectOptions.Conditionals := ChildNode.Value; - end; - end - else - begin - // check for version and default configurations - ChildNode := PropertyGroupNode.Items.ItemNamed[DProjProjectVersionNodeName]; - if Assigned(ChildNode) then - Version := ChildNode.Value; - - if Version = '' then - begin - ChildNode := PropertyGroupNode.Items.ItemNamed[DProjConfigurationNodeName]; - if Assigned(ChildNode) then - ProjectConfiguration := ChildNode.Value; - ChildNode := PropertyGroupNode.Items.ItemNamed[DProjPlatformNodeName]; - if Assigned(ChildNode) then - ProjectPlatform := ChildNode.Value; - end - else - begin - ChildNode := PropertyGroupNode.Items.ItemNamed[DProjConfigNodeName]; - if Assigned(ChildNode) then - ProjectConfiguration := ChildNode.Value; - end; - end; - end; - end; + ProjectOptions.DynamicPackages := MsBuildOptions.Properties.Values[DProjUsePackageNodeName]; + ProjectOptions.UsePackages := ProjectOptions.DynamicPackages <> ''; + ProjectOptions.UnitOutputDir := MsBuildOptions.Properties.Values[DProjDcuOutputDirNodeName]; + ProjectOptions.SearchPath := MsBuildOptions.Properties.Values[DProjUnitSearchPathNodeName]; + ProjectOptions.Conditionals := MsBuildOptions.Properties.Values[DProjDefineNodeName]; end; finally - OptionsXmlFile.Free; + MsBuildOptions.Free; end; end; end; Modified: trunk/jcl/source/common/JclDevToolsResources.pas =================================================================== --- trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-13 12:41:24 UTC (rev 3576) +++ trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-13 14:33:37 UTC (rev 3577) @@ -145,7 +145,6 @@ RsEMultipleProjectExtensions = 'Multiple project extensions'; RsEMultipleOtherwise = 'Multiple otherwise'; RsEConditionNotUnique = 'Condition is not unique'; - RsEMissingItemInclude = 'Missing item include'; RsEMissingTargetName = 'Missing target name'; RsEMissingTaskName = 'Missing task name'; RsEMissingAssembly = 'Missing assembly'; @@ -154,6 +153,7 @@ RsEMSBuildPath = 'Unable to locate MSBuild.exe'; RsEFunctionProperty = 'Unable to evaluate function property "%s"'; RsERegistryProperty = 'Unable to evaluate registry property root="%s" path="%s" name="%s"'; + RsELocateXmlElem = 'Unable to locate the XML element for MSBuild property "%s"'; //=== JclUsesUtils.pas ======================================================= resourcestring Modified: trunk/jcl/source/common/JclIDEUtils.pas =================================================================== --- trunk/jcl/source/common/JclIDEUtils.pas 2011-08-13 12:41:24 UTC (rev 3576) +++ trunk/jcl/source/common/JclIDEUtils.pas 2011-08-13 14:33:37 UTC (rev 3577) @@ -697,7 +697,7 @@ {$ENDIF HAS_UNIT_LIBC} JclFileUtils, JclLogic, JclDevToolsResources, JclAnsiStrings, JclWideStrings, JclStrings, - JclSysInfo, JclSimpleXml; + JclSysInfo, JclSimpleXml, JclMsBuild; // Internal @@ -850,7 +850,6 @@ MsBuildCBuilderBrowsingPathNodeName = 'CBuilderBrowsingPath'; MsBuildCBuilderLibraryPathNodeName = 'CBuilderLibraryPath'; MsBuildCBuilderIncludePathNodeName = 'CBuilderIncludePath'; - MsBuildPropertyGroupNodeName = 'PropertyGroup'; {$IFDEF MSWINDOWS} @@ -3522,25 +3521,17 @@ function TJclBDSInstallation.GetMsBuildEnvOption(const OptionName: string): string; var - EnvOptionsFile: TJclSimpleXML; - PropertyGroupNode, PropertyNode: TJclSimpleXMLElem; + EnvOptions: TJclMsBuildParser; begin Result := ''; - EnvOptionsFile := TJclSimpleXML.Create; + EnvOptions := TJclMsBuildParser.Create(GetMsBuildEnvOptionsFileName); try - EnvOptionsFile.LoadFromFile(GetMsBuildEnvOptionsFileName); - EnvOptionsFile.Options := EnvOptionsFile.Options - [sxoAutoCreate]; - - PropertyGroupNode := EnvOptionsFile.Root.Items.ItemNamed[MsBuildPropertyGroupNodeName]; - if Assigned(PropertyGroupNode) then - begin - PropertyNode := PropertyGroupNode.Items.ItemNamed[OptionName]; - if Assigned(PropertyNode) then - Result := PropertyNode.Value; - end; + EnvOptions.Init; + EnvOptions.Parse; + Result := EnvOptions.Properties.RawValues[OptionName]; finally - EnvOptionsFile.Free; + EnvOptions.Free; end; end; @@ -3763,26 +3754,23 @@ procedure TJclBDSInstallation.SetMsBuildEnvOption(const OptionName, Value: string); var EnvOptionsFileName, BakEnvOptionsFileName: string; - EnvOptionsFile: TJclSimpleXML; - PropertyGroupNode, PropertyNode: TJclSimpleXMLElem; + EnvOptions: TJclMsBuildParser; begin - EnvOptionsFile := TJclSimpleXML.Create; + EnvOptionsFileName := GetMsBuildEnvOptionsFileName; + EnvOptions := TJclMsBuildParser.Create(EnvOptionsFileName); try - EnvOptionsFileName := GetMsBuildEnvOptionsFileName; - EnvOptionsFile.LoadFromFile(EnvOptionsFileName); - EnvOptionsFile.Options := EnvOptionsFile.Options + [sxoAutoCreate,sxoDoNotSaveProlog]; + EnvOptions.Init; + EnvOptions.Parse; + + EnvOptions.Properties.RawValues[OptionName] := Value; - PropertyGroupNode := EnvOptionsFile.Root.Items.ItemNamed[MsBuildPropertyGroupNodeName]; - PropertyNode := PropertyGroupNode.Items.ItemNamed[OptionName]; - - PropertyNode.Value := Value; - { Do not overwrite the original file if something goes wrong } BakEnvOptionsFileName := EnvOptionsFileName + '.bak'; DeleteFile(BakEnvOptionsFileName); RenameFile(EnvOptionsFileName, BakEnvOptionsFileName); try - EnvOptionsFile.SaveToFile(EnvOptionsFileName); + EnvOptions.Xml.Options := EnvOptions.Xml.Options + [sxoDoNotSaveProlog]; + EnvOptions.Save; DeleteFile(BakEnvOptionsFileName); except DeleteFile(EnvOptionsFileName); @@ -3790,7 +3778,7 @@ raise; end; finally - EnvOptionsFile.Free; + EnvOptions.Free; end; end; Modified: trunk/jcl/source/windows/JclMsBuild.pas =================================================================== --- trunk/jcl/source/windows/JclMsBuild.pas 2011-08-13 12:41:24 UTC (rev 3576) +++ trunk/jcl/source/windows/JclMsBuild.pas 2011-08-13 14:33:37 UTC (rev 3577) @@ -23,7 +23,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -212,8 +212,10 @@ function Get(Index: Integer): string; override; function GetCount: Integer; override; function GetObject(Index: Integer): TObject; override; + function GetRawValue(const Name: string): string; procedure Put(Index: Integer; const S: string); override; procedure PutObject(Index: Integer; AObject: TObject); override; + procedure SetRawValue(const Name, Value: string); public constructor Create(AParser: TJclMsBuildParser); destructor Destroy; override; @@ -230,6 +232,8 @@ property EnvironmentProperties: TStrings read FEnvironmentProperties; property GlobalProperties: TStrings read FGlobalProperties; property CustomProperties: TStrings read FCustomProperties; + + property RawValues[const Name: string]: string read GetRawValue write SetRawValue; end; TJclMsBuildImportEvent = procedure (Sender: TJclMsBuildParser; var FileName: TFileName; @@ -257,6 +261,7 @@ FDotNetVersion: string; FIgnoreFunctionProperties: Boolean; FWorkingDirectory: string; + FFirstPropertyGroup: TJclSimpleXMLElem; FProjectExtensions: TJclSimpleXMLElem; FOnImport: TJclMsBuildImportEvent; FOnToolsVersion: TJclMsBuildToolsVersionEvent; @@ -317,6 +322,7 @@ procedure ClearTargets; procedure Parse; + procedure Save; procedure FindItemIncludes(const ItemName: string; List: TStrings); function FindItemDefinition(const ItemName: string): TJclMsBuildItem; @@ -632,6 +638,21 @@ raise EJclMsBuildError.CreateRes(@SRangeError); end; +function TJclMsBuildProperties.GetRawValue(const Name: string): string; +var + Index: Integer; + XmlElem: TJclSimpleXmlElem; +begin + Index := IndexOfName(Name); + XmlElem := nil; + if Index >= 0 then + XmlElem := TJclSimpleXMLElem(Objects[Index]); + if Assigned(XmlElem) then + Result := XmlElem.Value + else + Result := ''; +end; + function TJclMsBuildProperties.IndexOf(const S: string): Integer; begin // - reserved properties defined by MsBuild, @@ -772,6 +793,24 @@ raise EJclMsBuildError.CreateRes(@SRangeError); end; +procedure TJclMsBuildProperties.SetRawValue(const Name, Value: string); +var + Index: Integer; + XmlElem: TJclSimpleXmlElem; +begin + Index := IndexOfName(Name); + XmlElem := nil; + if Index >= 0 then + XmlElem := TJclSimpleXMLElem(Objects[Index]); + if Assigned(XmlElem) then + XmlElem.Value := Value + else + if Assigned(Parser.FFirstPropertyGroup) then + Parser.FFirstPropertyGroup.Items.AddText(Name, Value) + else + raise EJclMsBuildError.CreateResFmt(@RsELocateXmlElem, [Name]); +end; + //=== { TJclMsBuildParser } ================================================== constructor TJclMsBuildParser.Create(const AFileName: TFileName; Encoding: TJclStringEncoding; CodePage: Word); @@ -1382,6 +1421,8 @@ procedure TJclMsBuildParser.Parse; begin + FFirstPropertyGroup := nil; + FProjectExtensions := nil; FCurrentFileName := FProjectFileName; ParseXml(FXml); end; @@ -1460,7 +1501,7 @@ begin // read infix operator MiddleOperator := opUnknown; - if (Position <= (Len + 2)) and (MiddleOperator = opUnknown) then + if ((Position + 2) <= Len) and (MiddleOperator = opUnknown) then begin if ((Condition[Position] = 'A') or (Condition[Position] = 'a')) and ((Condition[Position + 1] = 'N') or (Condition[Position + 1] = 'n')) and @@ -1469,7 +1510,7 @@ if MiddleOperator <> opUnknown then Inc(Position, 3); end; - if (Position <= (Len + 1)) and (MiddleOperator = opUnknown) then + if ((Position + 1) <= Len) and (MiddleOperator = opUnknown) then begin if ((Condition[Position] = 'O') or (Condition[Position] = 'o')) and ((Condition[Position + 1] = 'R') or (Condition[Position + 1] = 'r')) then @@ -1541,7 +1582,7 @@ Inc(Position); // read infix operator MiddleOperator := opUnknown; - if (Position <= (Len + 1)) and (MiddleOperator = opUnknown) then + if ((Position + 1) <= Len) and (MiddleOperator = opUnknown) then begin if (Condition[Position] = '=') and (Condition[Position + 1] = '=') then MiddleOperator := opEqual @@ -1830,9 +1871,6 @@ raise EJclMsBuildError.CreateResFmt(@RsEUnknownProperty, [Prop.Name]); end; - if ItemInclude = '' then - raise EJclMsBuildError.CreateRes(@RsEMissingItemInclude); - if Condition then begin Item := TJclMsBuildItem.Create; @@ -2202,7 +2240,11 @@ end else if SubElem.Name = 'PropertyGroup' then + begin + if (CurrentFileName = ProjectFileName) and not Assigned(FFirstPropertyGroup) then + FFirstPropertyGroup := SubElem; ParsePropertyGroup(SubElem) + end else if SubElem.Name = 'Target' then ParseTarget(SubElem) @@ -2241,7 +2283,15 @@ end; if Condition then + begin Properties.Values[XmlElem.Name] := EvaluateString(XmlElem.Value); + // store the XML element for further modifications in the current file + if CurrentFileName = ProjectFileName then + begin + Index := Properties.IndexOfName(XmlElem.Name); + Properties.Objects[Index] := XmlElem; + end; + end; end; procedure TJclMsBuildParser.ParsePropertyGroup(XmlElem: TJclSimpleXmlElem); @@ -2535,6 +2585,11 @@ ParseProject(AXml.Root); end; +procedure TJclMsBuildParser.Save; +begin + Xml.SaveToFile(ProjectFileName); +end; + {$IFDEF UNITVERSIONING} initialization RegisterUnitVersion(HInstance, UnitVersioning); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-13 12:41:31
|
Revision: 3576 http://jcl.svn.sourceforge.net/jcl/?rev=3576&view=rev Author: outchy Date: 2011-08-13 12:41:24 +0000 (Sat, 13 Aug 2011) Log Message: ----------- fix several bugs and some new features: - evaluate all values; - add option to ignore all function properties; - $(MSBuildProjectExtension) was overridden by $(MSBuildProjectName) which did not exist; - operator ! can be applied to parenthesed conditions. Modified Paths: -------------- trunk/jcl/source/windows/JclMsBuild.pas Modified: trunk/jcl/source/windows/JclMsBuild.pas =================================================================== --- trunk/jcl/source/windows/JclMsBuild.pas 2011-08-13 12:12:31 UTC (rev 3575) +++ trunk/jcl/source/windows/JclMsBuild.pas 2011-08-13 12:41:24 UTC (rev 3576) @@ -23,7 +23,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -255,6 +255,7 @@ FDefaultTargets: TStrings; FToolsVersion: string; FDotNetVersion: string; + FIgnoreFunctionProperties: Boolean; FWorkingDirectory: string; FProjectExtensions: TJclSimpleXMLElem; FOnImport: TJclMsBuildImportEvent; @@ -343,6 +344,7 @@ property DefaultTargets: TStrings read FDefaultTargets; property ToolsVersion: string read FToolsVersion; property DotNetVersion: string read FDotNetVersion write FDotNetVersion; + property IgnoreFunctionProperties: Boolean read FIgnoreFunctionProperties write FIgnoreFunctionProperties; property WorkingDirectory: string read FWorkingDirectory write FWorkingDirectory; property OnImport: TJclMsBuildImportEvent read FOnImport write FOnImport; property OnToolsVersion: TJclMsBuildToolsVersionEvent read FOnToolsVersion write FOnToolsVersion; @@ -800,6 +802,7 @@ FUsingTasks := TObjectList.Create(True); FInitialTargets := TStringList.Create; FDefaultTargets := TStringList.Create; + FIgnoreFunctionProperties := True; end; destructor TJclMsBuildParser.Destroy; @@ -1112,7 +1115,8 @@ function TJclMsBuildParser.EvaluateFunctionProperty(const Command: string): string; begin - if not Assigned(FOnFunctionProperty) or not FOnFunctionProperty(Self, Command, Result) then + if (not Assigned(FOnFunctionProperty) or not FOnFunctionProperty(Self, Command, Result)) and + (not IgnoreFunctionProperties) then raise EJclMsBuildError.CreateResFmt(@RsEFunctionProperty, [Command]); end; @@ -1288,7 +1292,7 @@ Properties.ReservedProperties.Values['MSBuildProjectFullPath'] := ProjectFileName; // MSBuildProjectName - Properties.ReservedProperties.Values['MSBuildProjectExtension'] := ChangeFileExt(ExtractFileName(ProjectFileName), ''); + Properties.ReservedProperties.Values['MSBuildProjectName'] := ChangeFileExt(ExtractFileName(ProjectFileName), ''); DotNetVersions := TStringList.Create; try @@ -1646,7 +1650,7 @@ if (Result = '') and (Condition[StartPos] = '!') and not HasQuote then begin Inc(Position); - Result := BoolToStr(not StrToBool(ParseConditionString(Condition, Position, Len)), True); + Result := BoolToStr(not ParseConditionLength(Condition, Position, Len)); end else if (CompareText(Result, 'Exists') = 0) and not HasQuote then @@ -1815,13 +1819,13 @@ Condition := ParseCondition(Prop.Value) else if Prop.Name = 'Exclude' then - ItemExclude := Prop.Value + ItemExclude := EvaluateString(Prop.Value) else if Prop.Name = 'Include' then - ItemInclude := Prop.Value + ItemInclude := EvaluateString(Prop.Value) else if Prop.Name = 'Remove' then - ItemRemove := Prop.Value + ItemRemove := EvaluateString(Prop.Value) else raise EJclMsBuildError.CreateResFmt(@RsEUnknownProperty, [Prop.Name]); end; @@ -1934,7 +1938,7 @@ for Index := 0 to XmlElem.ItemCount - 1 do begin SubElem := XmlElem.Items.Item[Index]; - ItemMetaData.Values[SubElem.Name] := SubElem.Value; + ItemMetaData.Values[SubElem.Name] := EvaluateString(SubElem.Value); end; end; @@ -1956,7 +1960,7 @@ Condition := ParseCondition(Prop.Value) else if Prop.Name = 'ExecuteTargets' then - ExecuteTargets := Prop.Value + ExecuteTargets := EvaluateString(Prop.Value) else raise EJclMsBuildError.CreateResFmt(@RsEUnknownProperty, [Prop.Name]); end; @@ -2038,13 +2042,13 @@ Condition := ParseCondition(Prop.Value) else if Prop.Name = 'TaskParameter' then - TaskParameter := Prop.Value + TaskParameter := EvaluateString(Prop.Value) else if Prop.Name = 'PropertyName' then - PropertyName := Prop.Value + PropertyName := EvaluateString(Prop.Value) else if Prop.Name = 'ItemName' then - ItemName := Prop.Value + ItemName := EvaluateString(Prop.Value) else raise EJclMsBuildError.CreateResFmt(@RsEUnknownProperty, [Prop.Name]); end; @@ -2090,7 +2094,7 @@ begin Prop := XmlElem.Properties.Item[Index]; if Prop.Name = 'ParameterType' then - ParameterType := Prop.Value + ParameterType := EvaluateString(Prop.Value) else if Prop.Name = 'Output' then Output := Prop.BoolValue @@ -2140,24 +2144,27 @@ Index: Integer; Prop: TJclSimpleXMLProp; SubElem: TJclSimpleXmlElem; + S: string; begin for Index := 0 to XmlElem.PropertyCount - 1 do begin Prop := XmlElem.Properties.Item[Index]; if Prop.Name = 'InitialTargets' then - StrToStrings(Prop.Value, ';', FInitialTargets, False) + StrToStrings(EvaluateString(Prop.Value), ';', FInitialTargets, False) else if Prop.Name = 'DefaultTargets' then begin - Properties.ReservedProperties.Values['MSBuildProjectDefaultTargets'] := Prop.Value; - StrToStrings(Prop.Value, ';', FDefaultTargets, False) + S := EvaluateString(Prop.Value); + Properties.ReservedProperties.Values['MSBuildProjectDefaultTargets'] := S; + StrToStrings(S, ';', FDefaultTargets, False) end else if Prop.Name = 'ToolsVersion' then begin + S := EvaluateString(Prop.Value); if Assigned(FOnToolsVersion) then - FOnToolsVersion(Self, Prop.Value); - FToolsVersion := Prop.Value; + FOnToolsVersion(Self, S); + FToolsVersion := S; end else if Prop.Name = 'xmlns' then @@ -2234,7 +2241,7 @@ end; if Condition then - Properties.Values[XmlElem.Name] := XmlElem.Value; + Properties.Values[XmlElem.Name] := EvaluateString(XmlElem.Value); end; procedure TJclMsBuildParser.ParsePropertyGroup(XmlElem: TJclSimpleXmlElem); @@ -2282,25 +2289,25 @@ Condition := ParseCondition(Prop.Value) else if Prop.Name = 'Name' then - TargetName := Prop.Value + TargetName := EvaluateString(Prop.Value) else if Prop.Name = 'DependsOnTargets' then - Depends := Prop.Value + Depends := EvaluateString(Prop.Value) else if Prop.Name = 'Returns' then - Returns := Prop.Value + Returns := EvaluateString(Prop.Value) else if Prop.Name = 'Inputs' then - Inputs := Prop.Value + Inputs := EvaluateString(Prop.Value) else if Prop.Name = 'Outputs' then - Outputs := Prop.Value + Outputs := EvaluateString(Prop.Value) else if Prop.Name = 'BeforeTargets' then - BeforeTargets := Prop.Value + BeforeTargets := EvaluateString(Prop.Value) else if Prop.Name = 'AfterTargets' then - AfterTargets := Prop.Value + AfterTargets := EvaluateString(Prop.Value) else if Prop.Name = 'KeepDuplicateOutputs' then KeepDuplicateOutput := Prop.BoolValue @@ -2367,7 +2374,7 @@ begin Prop := XmlElem.Properties.Item[Index]; if (Prop.Name <> 'Condition') and (Prop.Name <> 'ContinueOnError') then - Task.Parameters.Values[Prop.Name] := Prop.Value; + Task.Parameters.Values[Prop.Name] := EvaluateString(Prop.Value); end; for Index := 0 to XmlElem.ItemCount - 1 do @@ -2432,16 +2439,16 @@ Condition := ParseCondition(Prop.Value) else if Prop.Name = 'TaskName' then - TaskName := Prop.Value + TaskName := EvaluateString(Prop.Value) else if Prop.Name = 'TaskFactory' then - TaskFactory := Prop.Value + TaskFactory := EvaluateString(Prop.Value) else if Prop.Name = 'AssemblyName' then - AssemblyName := Prop.Value + AssemblyName := EvaluateString(Prop.Value) else if Prop.Name = 'AssemblyFile' then - AssemblyFile := Prop.Value + AssemblyFile := EvaluateString(Prop.Value) else raise EJclMsBuildError.CreateResFmt(@RsEUnknownProperty, [Prop.Name]); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-13 12:12:38
|
Revision: 3575 http://jcl.svn.sourceforge.net/jcl/?rev=3575&view=rev Author: outchy Date: 2011-08-13 12:12:31 +0000 (Sat, 13 Aug 2011) Log Message: ----------- underscore is a valid character for starting property names. Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2011-08-13 09:58:58 UTC (rev 3574) +++ trunk/jcl/source/common/JclSimpleXml.pas 2011-08-13 12:12:31 UTC (rev 3575) @@ -2717,7 +2717,7 @@ if UnicodeIsWhiteSpace(Ch) then StringStream.ReadUCS4(Ch) else - if UnicodeIsIdentifierStart(Ch) or (Ch = Ord('-')) or (Ch = Ord('.')) then + if UnicodeIsIdentifierStart(Ch) or (Ch = Ord('-')) or (Ch = Ord('.')) or (Ch = Ord('_')) then begin StringStream.ReadUCS4(Ch); lName := UCS4Array(Ch); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-13 09:59:04
|
Revision: 3574 http://jcl.svn.sourceforge.net/jcl/?rev=3574&view=rev Author: outchy Date: 2011-08-13 09:58:58 +0000 (Sat, 13 Aug 2011) Log Message: ----------- fix Unicode warning. Modified Paths: -------------- trunk/jcl/source/windows/JclRegistry.pas Modified: trunk/jcl/source/windows/JclRegistry.pas =================================================================== --- trunk/jcl/source/windows/JclRegistry.pas 2011-08-12 22:43:02 UTC (rev 3573) +++ trunk/jcl/source/windows/JclRegistry.pas 2011-08-13 09:58:58 UTC (rev 3574) @@ -455,7 +455,7 @@ Index: Integer; begin for Index := Low(RootKeys) to High(RootKeys) do - if RootKeys[Index].AnsiName = Name then + if string(RootKeys[Index].AnsiName) = Name then begin Result := RootKeys[Index].Key; Exit; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-12 22:43:11
|
Revision: 3573 http://jcl.svn.sourceforge.net/jcl/?rev=3573&view=rev Author: outchy Date: 2011-08-12 22:43:02 +0000 (Fri, 12 Aug 2011) Log Message: ----------- New "almost complete" MSBuild parser to query all informations from MSBuild project files (simple program at the top of the file). Modified Paths: -------------- trunk/jcl/source/common/JclDevToolsResources.pas trunk/jcl/source/windows/JclMsBuild.pas Modified: trunk/jcl/source/common/JclDevToolsResources.pas =================================================================== --- trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-12 22:41:06 UTC (rev 3572) +++ trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-12 22:43:02 UTC (rev 3573) @@ -1,4 +1,4 @@ -{**************************************************************************************************} +{**************************************************************************************************} { } { Project JEDI Code Library (JCL) } { } @@ -134,10 +134,9 @@ //=== JclMsBuild.pas ========================================================= resourcestring - RsEEndOfString = 'Invalid condition: end of string'; - RsEMissingParenthesis = 'Invalid condition: missing parenthesis'; - RsEEmptyIdentifier = 'Invalid condition: empty identifier'; - RsEUnknownOperator = 'Invalid condition: unknown operator'; + RsEEndOfString = 'Invalid condition: end of string in condition "%s"'; + RsEMissingParenthesis = 'Invalid condition: missing parenthesis in condition "%s"'; + RsEUnknownOperator = 'Invalid condition: unknown operator in condition "%s"'; RsEReservedProperty = 'Attempt to override or to delete a reserved MsBuild property'; RsENoProjectElem = 'Project element expected, got "%s"'; RsEUnknownSchema = 'Unknown schema "%s"'; @@ -147,10 +146,14 @@ RsEMultipleOtherwise = 'Multiple otherwise'; RsEConditionNotUnique = 'Condition is not unique'; RsEMissingItemInclude = 'Missing item include'; + RsEMissingTargetName = 'Missing target name'; RsEMissingTaskName = 'Missing task name'; RsEMissingAssembly = 'Missing assembly'; RsEMissingTaskParameter = 'Missing task parameter'; RsEMissingOutputName = 'Missing output name'; + RsEMSBuildPath = 'Unable to locate MSBuild.exe'; + RsEFunctionProperty = 'Unable to evaluate function property "%s"'; + RsERegistryProperty = 'Unable to evaluate registry property root="%s" path="%s" name="%s"'; //=== JclUsesUtils.pas ======================================================= resourcestring Modified: trunk/jcl/source/windows/JclMsBuild.pas =================================================================== --- trunk/jcl/source/windows/JclMsBuild.pas 2011-08-12 22:41:06 UTC (rev 3572) +++ trunk/jcl/source/windows/JclMsBuild.pas 2011-08-12 22:43:02 UTC (rev 3573) @@ -23,7 +23,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -40,19 +40,316 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} + Windows, + SysUtils, Classes, + Contnrs, JclBase, - JclSimpleXml; + JclFileUtils, + JclRegistry, + JclStreams, + JclSimpleXml, + JclSysInfo; +(* simple test procedure: load Jcl.dproj and emit custom properties and files to be compiled + +procedure Test; +var + MsBuildParser: TJclMsBuildParser; +begin + MsBuildParser := TJclMsBuildParser.Create('C:\dev\jcl\jcl\packages\d11\Jcl.dproj'); + try + MsBuildParser.Init; + MsBuildParser.Parse; + WriteLn(MsBuildParser.Properties.CustomProperties.Text); + WriteLn(MsBuildParser.EvaluateString('@(DCCReference->''%(FullPath)'')')); + finally + MsBuildParser.Free; + end; +end; *) + type EJclMsBuildError = class(EJclError); -// this function parses MsBuild condition as described at: -// http://msdn.microsoft.com/en-us/library/7szfhaft.aspx -function ParseCondition(const Condition: string; Defines: TStrings): Boolean; overload; -function ParseCondition(const Condition: string; var Position: Integer; Len: Integer; - Defines: TStrings): Boolean; overload; + TJclMsBuildItem = class + private + FItemName: string; + FItemInclude: string; + FItemFullInclude: string; //full path + FItemExclude: string; + FItemRemove: string; + FItemMetaData: TStrings; + public + constructor Create; + destructor Destroy; override; + property ItemName: string read FItemName; + property ItemInclude: string read FItemInclude; + property ItemFullInclude: string read FItemFullInclude; + property ItemExclude: string read FItemExclude; + property ItemRemove: string read FItemRemove; + property ItemMetaData: TStrings read FItemMetaData; + end; + TJclMsBuildTaskOutput = class + private + FTaskParameter: string; + FPropertyName: string; + FItemName: string; + public + property TaskParameter: string read FTaskParameter; + property PropertyName: string read FPropertyName; + property ItemName: string read FItemName; + end; + + TJclMsBuildParameter = class + private + FParameterName: string; + FParameterType: string; + FOutput: Boolean; + FRequired: Boolean; + public + property ParameterName: string read FParameterName; + property ParameterType: string read FParameterType; + property Output: Boolean read FOutput; + property Required: Boolean read FRequired; + end; + + TJclMsBuildUsingTask = class + private + FAssemblyName: string; + FAssemblyFile: string; + FTaskFactory: string; + FTaskName: string; + FParameters: TObjectList; + FTaskBody: string; + function AddParameter(Parameter: TJclMsBuildParameter): Integer; + function GetParameterCount: Integer; + function GetParameter(Index: Integer): TJclMsBuildParameter; + public + constructor Create; + destructor Destroy; override; + property AssemblyName: string read FAssemblyName; + property AssemblyFile: string read FAssemblyFile; + property TaskFactory: string read FTaskFactory; + property TaskName: string read FTaskName; + property ParameterCount: Integer read GetParameterCount; + property Parameters[Index: Integer]: TJclMsBuildParameter read GetParameter; + property TaskBody: string read FTaskBody; + end; + + TJclMsBuildTask = class + private + FTaskName: string; + FContinueOnError: Boolean; + FParameters: TStrings; + FOutputs: TObjectList; + function AddOutput(AOutput: TJclMsBuildTaskOutput): Integer; + function GetOutputCount: Integer; + function GetOutput(Index: Integer): TJclMsBuildTaskOutput; + public + constructor Create; + destructor Destroy; override; + property TaskName: string read FTaskName; + property ContinueOnError: Boolean read FContinueOnError; + property Parameters: TStrings read FParameters; + property OutputCount: Integer read GetOutputCount; + property Outputs[Index: Integer]: TJclMsBuildTaskOutput read GetOutput; + end; + + TJclMsBuildTarget = class + private + FTargetName: string; + FDepends: TStrings; + FReturns: TStrings; + FInputs: TStrings; + FOutputs: TStrings; + FBeforeTargets: TStrings; + FAfterTargets: TStrings; + FKeepDuplicateOutputs: Boolean; + FTasks: TObjectList; + FErrorTargets: TStrings; + function AddTask(Task: TJclMsBuildTask): Integer; + function GetTaskCount: Integer; + function GetTask(Index: Integer): TJclMsBuildTask; + public + constructor Create; + destructor Destroy; override; + property TargetName: string read FTargetName; + property Depends: TStrings read FDepends; + property Returns: TStrings read FReturns; + property Inputs: TStrings read FInputs; + property Outputs: TStrings read FOutputs; + property BeforeTargets: TStrings read FBeforeTargets; + property AfterTargets: TStrings read FAfterTargets; + property KeepDuplicateOutputs: Boolean read FKeepDuplicateOutputs; + property TaskCount: Integer read GetTaskCount; + property Tasks[Index: Integer]: TJclMsBuildTask read GetTask; + property ErrorTargets: TStrings read FErrorTargets; + end; + + TJclMsBuildParser = class; + + // TStrings wrapper for all the MsBuild properties, values are searched + // in the following ordered property classes: + // - reserved properties defined by MsBuild, + // their value cannot be overriden or an error will be raised + // - properties taken from the emulated "command line" + // their value cannot be overriden, no error is raised + // - custom properties defined by the script + // - environment properties taken from the environment variables + // their value can be silently overriden + // - registry properties handled by event + // - function properties handled by event + + TJclMsBuildProperties = class(TStrings) + private + FParser: TJclMsBuildParser; + FReservedProperties: TStrings; + FGlobalProperties: TStrings; + FCustomProperties: TStrings; + FEnvironmentProperties: TStrings; + protected + function Get(Index: Integer): string; override; + function GetCount: Integer; override; + function GetObject(Index: Integer): TObject; override; + procedure Put(Index: Integer; const S: string); override; + procedure PutObject(Index: Integer; AObject: TObject); override; + public + constructor Create(AParser: TJclMsBuildParser); + destructor Destroy; override; + + property Parser: TJclMsBuildParser read FParser; + + procedure Clear; override; + + procedure Delete(Index: Integer); override; + function IndexOf(const S: string): Integer; override; + procedure Insert(Index: Integer; const S: string); override; + + property ReservedProperties: TStrings read FReservedProperties; + property EnvironmentProperties: TStrings read FEnvironmentProperties; + property GlobalProperties: TStrings read FGlobalProperties; + property CustomProperties: TStrings read FCustomProperties; + end; + + TJclMsBuildImportEvent = procedure (Sender: TJclMsBuildParser; var FileName: TFileName; + var SubXml: TJclSimpleXml; var SubOwnsXml: Boolean) of object; + TJclMsBuildToolsVersionEvent = procedure (Sender: TJclMsBuildParser; const ToolsVersion: string) of object; + TJclMsBuildRegistryPropertyEvent = function (Sender: TJclMsBuildParser; Root: HKEY; + const Path, Name: string; out Value: string): Boolean of object; + TJclMsBuildFunctionPropertyEvent = function (Sender: TJclMsBuildParser; const Command: string; + out Value: string): Boolean of object; + + TJclMsBuildParser = class + private + FCurrentFileName: TFileName; + FProjectFileName: TFileName; + FXml: TJclSimpleXml; + FOwnsXml: Boolean; + FProperties: TJclMsBuildProperties; + FItems: TObjectList; + FItemDefinitions: TObjectList; + FTargets: TObjectList; + FUsingTasks: TObjectList; + FInitialTargets: TStrings; + FDefaultTargets: TStrings; + FToolsVersion: string; + FDotNetVersion: string; + FWorkingDirectory: string; + FProjectExtensions: TJclSimpleXMLElem; + FOnImport: TJclMsBuildImportEvent; + FOnToolsVersion: TJclMsBuildToolsVersionEvent; + FOnRegistryProperty: TJclMsBuildRegistryPropertyEvent; + FOnFunctionProperty: TJclMsBuildFunctionPropertyEvent; + function GetItemCount: Integer; + function GetItem(Index: Integer): TJclMsBuildItem; + function GetItemDefinitionCount: Integer; + function GetItemDefinition(Index: Integer): TJclMsBuildItem; + function GetTargetCount: Integer; + function GetTarget(Index: Integer): TJclMsBuildTarget; + function GetUsingTaskCount: Integer; + function GetUsingTask(Index: Integer): TJclMsBuildUsingTask; + procedure ParseChoose(XmlElem: TJclSimpleXmlElem); + procedure ParseImport(XmlElem: TJclSimpleXmlElem); + procedure ParseImportGroup(XmlElem: TJclSimpleXmlElem); + procedure ParseItem(XmlElem: TJclSimpleXmlElem; Definition: Boolean); + procedure ParseItemDefinitionGroup(XmlElem: TJclSimpleXmlElem); + procedure ParseItemGroup(XmlElem: TJclSimpleXmlElem); + procedure ParseItemMetaData(XmlElem: TJclSimpleXmlElem; ItemMetaData: TStrings); + procedure ParseOnError(XmlElem: TJclSimpleXMLElem; Target: TJclMsBuildTarget); + function ParseOtherwise(XmlElem: TJclSimpleXmlElem; Skip: Boolean): Boolean; + procedure ParseOutput(XmlElem: TJclSimpleXMLElem; Task: TJclMsBuildTask); + procedure ParseParameter(XmlElem: TJclSimpleXMLElem; UsingTask: TJclMsBuildUsingTask); + procedure ParseParameterGroup(XmlElem: TJclSimpleXMLElem; UsingTask: TJclMsBuildUsingTask); + procedure ParseProject(XmlElem: TJclSimpleXmlElem); + procedure ParseProperty(XmlElem: TJclSimpleXmlElem); + procedure ParsePropertyGroup(XmlElem: TJclSimpleXmlElem); + procedure ParseTarget(XmlElem: TJclSimpleXmlElem); + procedure ParseTask(XmlElem: TJclSimpleXMLElem; Target: TJclMsBuildTarget); + procedure ParseTaskBody(XmlElem: TJclSimpleXMLElem; UsingTask: TJclMsBuildUsingTask); + procedure ParseUsingTask(XmlElem: TJclSimpleXmlElem); + function ParseWhen(XmlElem: TJclSimpleXmlElem; Skip: Boolean): Boolean; + procedure ParseXml(AXml: TJclSimpleXML); + public + // evaluate known MsBuild properties + // http://msdn.microsoft.com/en-us/library/ms171458.aspx + function EvaluateFunctionProperty(const Command: string): string; + function EvaluateList(const Name: string): string; + function EvaluateRegistryProperty(Root: HKEY; const Path, Name: string): string; + function EvaluateString(const S: string): string; + function EvaluateTransform(ItemList: TStrings; const Transform: string): string; + public + // this function parses MsBuild condition as described at: + // http://msdn.microsoft.com/en-us/library/7szfhaft.aspx + function ParseCondition(const Condition: string): Boolean; + function ParseConditionLength(const Condition: string; var Position: Integer; Len: Integer): Boolean; + function ParseConditionOperand(const Condition: string; var Position: Integer; Len: Integer): Boolean; + function ParseConditionString(const Condition: string; var Position: Integer; Len: Integer): string; + public + constructor Create(const AFileName: TFileName; AXml: TJclSimpleXml; AOwnsXml: Boolean = False); overload; + constructor Create(const AFileName: TFileName; Encoding: TJclStringEncoding = seAuto; CodePage: Word = CP_ACP); overload; + destructor Destroy; override; + + procedure Clear; + procedure ClearItems; + procedure ClearItemDefinitions; + procedure ClearTargets; + + procedure Parse; + + procedure FindItemIncludes(const ItemName: string; List: TStrings); + function FindItemDefinition(const ItemName: string): TJclMsBuildItem; + function FindTarget(const TargetName: string): TJclMsBuildTarget; + + procedure Init; + procedure InitEnvironmentProperties; + procedure InitReservedProperties; + + property CurrentFileName: TFileName read FCurrentFileName; + property ProjectFileName: TFileName read FProjectFileName; + property Xml: TJclSimpleXml read FXml; + property OwnsXml: Boolean read FOwnsXml write FOwnsXml; + property Properties: TJclMsBuildProperties read FProperties; + property ItemCount: Integer read GetItemCount; + property Items[Index: Integer]: TJclMsBuildItem read GetItem; + property ItemDefinitionCount: Integer read GetItemDefinitionCount; + property ItemDefinitions[Index: Integer]: TJclMsBuildItem read GetItemDefinition; + property TargetCount: Integer read GetTargetCount; + property Targets[Index: Integer]: TJclMsBuildTarget read GetTarget; + property UsingTaskCount: Integer read GetUsingTaskCount; + property UsingTasks[Index: Integer]: TJclMsBuildUsingTask read GetUsingTask; + property ProjectExtensions: TJclSimpleXMLElem read FProjectExtensions; + property InitialTargets: TStrings read FInitialTargets; + property DefaultTargets: TStrings read FDefaultTargets; + property ToolsVersion: string read FToolsVersion; + property DotNetVersion: string read FDotNetVersion write FDotNetVersion; + property WorkingDirectory: string read FWorkingDirectory write FWorkingDirectory; + property OnImport: TJclMsBuildImportEvent read FOnImport write FOnImport; + property OnToolsVersion: TJclMsBuildToolsVersionEvent read FOnToolsVersion write FOnToolsVersion; + property OnRegistryProperty: TJclMsBuildRegistryPropertyEvent read FOnRegistryProperty write FOnRegistryProperty; + property OnFunctionProperty: TJclMsBuildFunctionPropertyEvent read FOnFunctionProperty write FOnFunctionProperty; + end; + {$IFDEF UNITVERSIONING} const UnitVersioning: TUnitVersionInfo = ( @@ -68,36 +365,615 @@ implementation uses - SysUtils, + SysConst, + JclWin32, + JclDotNet, + JclShell, JclStrings, JclDevToolsResources; -function EvaluateString(const Condition: string; Defines: TStrings): string; +//=== { TJclMsBuildItem } ==================================================== + +constructor TJclMsBuildItem.Create; +begin + inherited Create; + FItemMetaData := TStringList.Create; +end; + +destructor TJclMsBuildItem.Destroy; +begin + FItemMetaData.Free; + inherited Destroy; +end; + +//=== { TJclMsBuildUsingTask } =============================================== + +function TJclMsBuildUsingTask.AddParameter(Parameter: TJclMsBuildParameter): Integer; +begin + Result := FParameters.Add(Parameter); +end; + +constructor TJclMsBuildUsingTask.Create; +begin + inherited Create; + FParameters := TObjectList.Create(True); +end; + +destructor TJclMsBuildUsingTask.Destroy; +begin + FParameters.Free; + inherited Destroy; +end; + +function TJclMsBuildUsingTask.GetParameter( + Index: Integer): TJclMsBuildParameter; +begin + Result := TJclMsBuildParameter(FParameters.Items[Index]); +end; + +function TJclMsBuildUsingTask.GetParameterCount: Integer; +begin + Result := FParameters.Count; +end; + +//=== { TJclMsBuildTask } ==================================================== + +constructor TJclMsBuildTask.Create; +begin + inherited Create; + FParameters := TStringList.Create; + FOutputs := TObjectList.Create(True); +end; + +destructor TJclMsBuildTask.Destroy; +begin + FOutputs.Free; + FParameters.Free; + inherited Destroy; +end; + +function TJclMsBuildTask.AddOutput(AOutput: TJclMsBuildTaskOutput): Integer; +begin + Result := FOutputs.Add(AOutput); +end; + +function TJclMsBuildTask.GetOutput(Index: Integer): TJclMsBuildTaskOutput; +begin + Result := TJclMsBuildTaskOutput(FOutputs.Items[Index]); +end; + +function TJclMsBuildTask.GetOutputCount: Integer; +begin + Result := FOutputs.Count; +end; + +//=== { TJclMsBuildTarget } ================================================== + +constructor TJclMsBuildTarget.Create; +begin + inherited Create; + FDepends := TStringList.Create; + FReturns := TStringList.Create; + FInputs := TStringList.Create; + FOutputs := TStringList.Create; + FBeforeTargets := TStringList.Create; + FAfterTargets := TStringList.Create; + FTasks := TObjectList.Create(True); + FErrorTargets := TStringList.Create; +end; + +destructor TJclMsBuildTarget.Destroy; +begin + FErrorTargets.Free; + FTasks.Free; + FAfterTargets.Free; + FBeforeTargets.Free; + FOutputs.Free; + FInputs.Free; + FReturns.Free; + FDepends.Free; + inherited Destroy; +end; + +function TJclMsBuildTarget.AddTask(Task: TJclMsBuildTask): Integer; +begin + Result := FTasks.Add(Task); +end; + +function TJclMsBuildTarget.GetTask(Index: Integer): TJclMsBuildTask; +begin + Result := TJclMsBuildTask(FTasks.Items[Index]); +end; + +function TJclMsBuildTarget.GetTaskCount: Integer; +begin + Result := FTasks.Count; +end; + +//=== { TJclMsBuildProperties } ============================================== + +constructor TJclMsBuildProperties.Create(AParser: TJclMsBuildParser); +begin + inherited Create; + FParser := AParser; + FReservedProperties := TStringList.Create; + FGlobalProperties := TStringList.Create; + FCustomProperties := TStringList.Create; + FEnvironmentProperties := TStringList.Create; +end; + +destructor TJclMsBuildProperties.Destroy; +begin + FEnvironmentProperties.Free; + FCustomProperties.Free; + FGlobalProperties.Free; + FReservedProperties.Free; + inherited Destroy; +end; + +procedure TJclMsBuildProperties.Clear; +begin + ReservedProperties.Clear; + CustomProperties.Clear; + EnvironmentProperties.Clear; + GlobalProperties.Clear; +end; + +procedure TJclMsBuildProperties.Delete(Index: Integer); +begin + // - reserved properties defined by MsBuild, + // their value cannot be overriden or an error will be raised + if (Index >= 0) and (Index < FReservedProperties.Count) then + raise EJclMsBuildError.CreateRes(@RsEReservedProperty); + Dec(Index, FReservedProperties.Count); + + // - properties taken from the emulated "command line" + // their value cannot be overriden, no error is raised + if (Index >= 0) and (Index < FGlobalProperties.Count) then + Exit; + Dec(Index, FGlobalProperties.Count); + + // - custom properties defined by the script + if (Index >= 0) and (Index < FCustomProperties.Count) then + begin + FCustomProperties.Delete(Index); + Exit; + end; + Dec(Index, FCustomProperties.Count); + + // - environment properties taken from the environment variables + // their value can be silently overriden + if (Index >= 0) and (Index < FEnvironmentProperties.Count) then + begin + FEnvironmentProperties.Delete(Index); + Exit; + end; + + raise EJclMsBuildError.CreateRes(@SRangeError); +end; + +function TJclMsBuildProperties.Get(Index: Integer): string; +begin + // - reserved properties defined by MsBuild, + if (Index >= 0) and (Index < FReservedProperties.Count) then + begin + Result := FReservedProperties.Strings[Index]; + Exit; + end; + Dec(Index, FReservedProperties.Count); + + // - properties taken from the emulated "command line" + if (Index >= 0) and (Index < FGlobalProperties.Count) then + begin + Result := FGlobalProperties.Strings[Index]; + Exit; + end; + Dec(Index, FGlobalProperties.Count); + + // - custom properties defined by the script + if (Index >= 0) and (Index < FCustomProperties.Count) then + begin + Result := FCustomProperties.Strings[Index]; + Exit; + end; + Dec(Index, FCustomProperties.Count); + + // - environment properties taken from the environment variables + if (Index >= 0) and (Index < FEnvironmentProperties.Count) then + begin + Result := FEnvironmentProperties.Strings[Index]; + Exit; + end; + + raise EJclMsBuildError.CreateRes(@SRangeError); +end; + +function TJclMsBuildProperties.GetCount: Integer; +begin + Result := FReservedProperties.Count + FGlobalProperties.Count + + FCustomProperties.Count + FEnvironmentProperties.Count; +end; + +function TJclMsBuildProperties.GetObject(Index: Integer): TObject; +begin + // - reserved properties defined by MsBuild, + if (Index >= 0) and (Index < FReservedProperties.Count) then + begin + Result := FReservedProperties.Objects[Index]; + Exit; + end; + Dec(Index, FReservedProperties.Count); + + // - properties taken from the emulated "command line" + if (Index >= 0) and (Index < FGlobalProperties.Count) then + begin + Result := FGlobalProperties.Objects[Index]; + Exit; + end; + Dec(Index, FGlobalProperties.Count); + + // - custom properties defined by the script + if (Index >= 0) and (Index < FCustomProperties.Count) then + begin + Result := FCustomProperties.Objects[Index]; + Exit; + end; + Dec(Index, FCustomProperties.Count); + + // - environment properties taken from the environment variables + if (Index >= 0) and (Index < FEnvironmentProperties.Count) then + begin + Result := FEnvironmentProperties.Objects[Index]; + Exit; + end; + + raise EJclMsBuildError.CreateRes(@SRangeError); +end; + +function TJclMsBuildProperties.IndexOf(const S: string): Integer; +begin + // - reserved properties defined by MsBuild, + Result := FReservedProperties.IndexOf(S); + if Result >= 0 then + Exit; + + // - properties taken from the emulated "command line" + Result := FGlobalProperties.IndexOf(S); + if Result >= 0 then + begin + Inc(Result, FReservedProperties.Count); + Exit; + end; + + // - custom properties defined by the script + Result := FCustomProperties.IndexOf(S); + if Result >= 0 then + begin + Inc(Result, FReservedProperties.Count); + Inc(Result, FGlobalProperties.Count); + Exit; + end; + + // - environment properties taken from the environment variables + Result := FEnvironmentProperties.IndexOf(S); + if Result >= 0 then + begin + Inc(Result, FReservedProperties.Count); + Inc(Result, FGlobalProperties.Count); + Inc(Result, FCustomProperties.Count); + Exit; + end; +end; + +procedure TJclMsBuildProperties.Insert(Index: Integer; const S: string); +begin + // - reserved properties defined by MsBuild, + // their value cannot be overriden or an error will be raised + if (Index >= 0) and (Index < FReservedProperties.Count) then + raise EJclMsBuildError.CreateRes(@RsEReservedProperty); + Dec(Index, FReservedProperties.Count); + + // - properties taken from the emulated "command line" + // their value cannot be overriden, no error is raised + if (Index >= 0) and (Index < FGlobalProperties.Count) then + Exit; + Dec(Index, FGlobalProperties.Count); + + // - custom properties defined by the script + if (Index >= 0) and (Index < FCustomProperties.Count) then + begin + FCustomProperties.Insert(Index, S); + Exit; + end; + Dec(Index, FCustomProperties.Count); + + // - environment properties taken from the environment variables + // their value can be silently overriden + if (Index >= 0) and (Index <= FEnvironmentProperties.Count) then + begin + FCustomProperties.Add(S); + Exit; + end; + + raise EJclMsBuildError.CreateRes(@SRangeError); +end; + +procedure TJclMsBuildProperties.Put(Index: Integer; const S: string); +begin + // - reserved properties defined by MsBuild, + // their value cannot be overriden or an error will be raised + if (Index >= 0) and (Index < FReservedProperties.Count) then + raise EJclMsBuildError.CreateRes(@RsEReservedProperty); + Dec(Index, FReservedProperties.Count); + + // - properties taken from the emulated "command line" + // their value cannot be overriden, no error is raised + if (Index >= 0) and (Index < FGlobalProperties.Count) then + Exit; + Dec(Index, FGlobalProperties.Count); + + // - custom properties defined by the script + if (Index >= 0) and (Index < FCustomProperties.Count) then + begin + FCustomProperties.Strings[Index] := S; + Exit; + end; + Dec(Index, FCustomProperties.Count); + + // - environment properties taken from the environment variables + // their value can be silently overriden + if (Index >= 0) and (Index < FEnvironmentProperties.Count) then + begin + if (FCustomProperties.Count > 0) and (FCustomProperties.Strings[FCustomProperties.Count - 1] = '') then + FCustomProperties.Strings[FCustomProperties.Count - 1] := S + else + FCustomProperties.Add(S); + Exit; + end; + + raise EJclMsBuildError.CreateRes(@SRangeError); +end; + +procedure TJclMsBuildProperties.PutObject(Index: Integer; AObject: TObject); +begin + // - reserved properties defined by MsBuild, + if (Index >= 0) and (Index < FReservedProperties.Count) then + begin + FReservedProperties.Objects[Index] := AObject; + Exit; + end; + Dec(Index, FReservedProperties.Count); + + // - properties taken from the emulated "command line" + if (Index >= 0) and (Index < FGlobalProperties.Count) then + begin + FGlobalProperties.Objects[Index] := AObject; + Exit; + end; + Dec(Index, FGlobalProperties.Count); + + // - custom properties defined by the script + if (Index >= 0) and (Index < FCustomProperties.Count) then + begin + FCustomProperties.Objects[Index] := AObject; + Exit; + end; + Dec(Index, FCustomProperties.Count); + + // - environment properties taken from the environment variables + if (Index >= 0) and (Index < FEnvironmentProperties.Count) then + begin + FEnvironmentProperties.Objects[Index] := AObject; + Exit; + end; + + raise EJclMsBuildError.CreateRes(@SRangeError); +end; + +//=== { TJclMsBuildParser } ================================================== + +constructor TJclMsBuildParser.Create(const AFileName: TFileName; Encoding: TJclStringEncoding; CodePage: Word); var - Start, Position, Len: Integer; - PropertyName: string; + AXml: TJclSimpleXML; begin - Result := Condition; + AXml := TJclSimpleXML.Create; + try + AXml.LoadFromFile(AFileName, Encoding, CodePage); + except + AXml.Free; + raise; + end; + Create(AFileName, AXml, True); +end; + +constructor TJclMsBuildParser.Create(const AFileName: TFileName; + AXml: TJclSimpleXml; AOwnsXml: Boolean); +begin + inherited Create; + FProjectFileName := AFileName; + FXml := AXml; + FOwnsXml := AOwnsXml; + FProperties := TJclMsBuildProperties.Create(Self); + FItems := TObjectList.Create(True); + FItemDefinitions := TObjectList.Create(True); + FTargets := TObjectList.Create(True); + FUsingTasks := TObjectList.Create(True); + FInitialTargets := TStringList.Create; + FDefaultTargets := TStringList.Create; +end; + +destructor TJclMsBuildParser.Destroy; +begin + FDefaultTargets.Free; + FInitialTargets.Free; + FUsingTasks.Free; + FTargets.Free; + FItemDefinitions.Free; + FItems.Free; + FProperties.Free; + if FOwnsXml then + FXml.Free; + inherited Destroy; +end; + +procedure TJclMsBuildParser.Clear; +begin + ClearItems; + ClearItemDefinitions; + ClearTargets; + FProperties.Clear; + FInitialTargets.Clear; + FDefaultTargets.Clear; + FProjectExtensions := nil; +end; + +procedure TJclMsBuildParser.ClearItemDefinitions; +begin + FItemDefinitions.Clear; +end; + +procedure TJclMsBuildParser.ClearItems; +begin + FItems.Clear; +end; + +procedure TJclMsBuildParser.ClearTargets; +begin + FTargets.Clear; +end; + +function TJclMsBuildParser.EvaluateString(const S: string): string; + procedure FindClosingBrace(const R: string; var Position: Integer); + var + Index, Len, BraceCount: Integer; + Quotes: string; + begin + Len := Length(R); + BraceCount := 0; + Quotes := ''; + while (Position <= Len) do + begin + // handle quotes first + if (R[Position] = NativeSingleQuote) then + begin + Index := JclStrings.CharPos(Quotes, NativeSingleQuote); + if Index >= 0 then + SetLength(Quotes, Index - 1) + else + Quotes := Quotes + NativeSingleQuote; + end; + + if (R[Position] = NativeDoubleQuote) then + begin + Index := JclStrings.CharPos(Quotes, NativeDoubleQuote); + if Index >= 0 then + SetLength(Quotes, Index - 1) + else + Quotes := Quotes + NativeDoubleQuote; + end; + + if (R[Position] = '`') then + begin + Index := JclStrings.CharPos(Quotes, '`'); + if Index >= 0 then + SetLength(Quotes, Index - 1) + else + Quotes := Quotes + '`'; + end; + + if Quotes = '' then + begin + if R[Position] = ')' then + begin + Dec(BraceCount); + if BraceCount = 0 then + Break; + end + else + if R[Position] = '(' then + Inc(BraceCount); + end; + Inc(Position); + end; + if Position > Len then + raise EJclMsBuildError.CreateResFmt(@RsEEndOfString, [S]); + end; +var + Start, Position, Index: Integer; + PropertyName, PropertyValue, Path, Name: string; + Prop, Reg: Boolean; + Root: THandle; +begin + Result := S; if Result <> '' then begin - // evaluate variables repeat // start with the last match in order to convert $(some$(other)) + // evaluate properties Start := StrLastPos('$(', Result); if Start > 0 then begin - Len := Length(Result); Position := Start; - while (Position <= Len) and (Result[Position] <> ')') do - Inc(Position); - if Position > Len then - raise EJclMsBuildError.CreateRes(@RsEEndOfString); + FindClosingBrace(Result, Position); PropertyName := Copy(Result, Start + 2, Position - Start - 2); + + Prop := True; + for Index := 1 to Length(PropertyName) do + if not CharIsValidIdentifierLetter(PropertyName[Index]) then + begin + Prop := False; + Break; + end; + if Prop then + PropertyValue := Properties.Values[PropertyName] + else + begin + Reg := Copy(PropertyName, 1, 9) = 'registry:'; + if Reg then + begin + PropertyName := Copy(PropertyName, 10, Length(PropertyName) - 9); + Index := CharPos(PropertyName, '\'); + Root := RootKeyValue(Copy(PropertyName, 1, Index - 1)); + PropertyName := Copy(PropertyName, Index + 1, Length(PropertyName) - Index); + Index := CharPos(PropertyName, '@'); + if Index >= 0 then + begin + Path := Copy(PropertyName, 1, Index - 1); + Name := Copy(PropertyName, Index + 1, Length(PropertyName) - Index); + end + else + begin + Path := PropertyName; + Name := ''; + end; + PropertyValue := EvaluateRegistryProperty(Root, Path, Name); + end + else + PropertyValue := EvaluateFunctionProperty(PropertyName); + end; StrReplace(Result, - Copy(Result, Start, Position - Start + 1), // $(some) - Defines.Values[PropertyName], // some - [rfReplaceAll]); + Copy(Result, Start, Position - Start + 1), // $(PropertyName) + PropertyValue, + [rfReplaceAll]) end; + if Start = 0 then + begin + // evaluate item list + Start := StrLastPos('@(', Result); + if Start > 0 then + begin + Position := Start; + FindClosingBrace(Result, Position); + PropertyName := Copy(Result, Start + 2, Position - Start - 2); + + PropertyValue := EvaluateList(PropertyName); + + StrReplace(Result, + Copy(Result, Start, Position - Start + 1), // @(PropertyName...) + PropertyValue, + [rfReplaceAll]) + end; + end; until Start = 0; // convert hexa to decimal if Copy(Result, 1, 2) = '0x' then @@ -105,9 +981,635 @@ end; end; -function ParseString(const Condition: string; var Position: Integer; Len: Integer; - Defines: TStrings): string; +function TJclMsBuildParser.EvaluateTransform(ItemList: TStrings; const Transform: string): string; +type + TVarRecArray = array of TVarRec; + + function GetTransformPattern(const Transform: string): string; + begin + Result := Transform; + StrReplace(Result, '%(FullPath)', '%0:s', [rfReplaceAll]); + StrReplace(Result, '%(RootDir)', '%1:s', [rfReplaceAll]); + StrReplace(Result, '%(Filename)', '%2:s', [rfReplaceAll]); + StrReplace(Result, '%(Extension)', '%3:s', [rfReplaceAll]); + StrReplace(Result, '%(RelativeDir)', '%4:s', [rfReplaceAll]); + StrReplace(Result, '%(Directory)', '%5:s', [rfReplaceAll]); + StrReplace(Result, '%(RecursiveDir)', '%6:s', [rfReplaceAll]); + StrReplace(Result, '%(Identity)', '%7:s', [rfReplaceAll]); + StrReplace(Result, '%(ModifiedTime)', '%8:s', [rfReplaceAll]); + StrReplace(Result, '%(CreatedTime)', '%9:s', [rfReplaceAll]); + StrReplace(Result, '%(AccessedTime)', '%10:s', [rfReplaceAll]); + end; + + procedure GetTransformParameters(Item: TJclMsBuildItem; var Storage: TDynStringArray; + var Formats: TVarRecArray); + const + DateTimeFormat = 'yyyy-mm-dd hh:nn:ss.zzz'; + var + Index: Integer; + ItemFullInclude: string; + LocalDateTime: TDateTime; + begin + if Length(Formats) <> 11 then + begin + SetLength(Formats, 11); + for Index := Low(Formats) to High(Formats) do + begin + {$IFDEF SUPPORTS_UNICODE} + Formats[Index].VType := vtPWideChar; + Formats[Index].VPWideChar := nil; + {$ELSE ~SUPPORTS_UNICODE} + Formats[Index].VType := vtPChar; + Formats[Index].VPChar := nil; + {$ENDIF ~SUPPORTS_UNICODE} + end; + end; + + if Length(Storage) <> 11 then + SetLength(Storage, 11); + + ItemFullInclude := Item.ItemFullInclude; + + // %(FullPath) Contains the full path of the item. For example: + Storage[0] := ItemFullInclude; + + // %(RootDir) Contains the root directory of the item. For example: + if PathIsAbsolute(ItemFullInclude) and not PathIsUNC(ItemFullInclude) and + (ItemFullInclude <> '') and CharIsDriveLetter(ItemFullInclude[1]) then + Storage[1] := ItemFullInclude[1] + ':\' + else + Storage[1] := ''; + + // %(Filename) Contains the file name of the item, without the extension. For example: + Storage[2] := ChangeFileExt(ExtractFileName(Item.ItemInclude), ''); + + // %(Extension) Contains the file name extension of the item. For example: + Storage[3] := ExtractFileExt(Item.ItemInclude); + + // %(RelativeDir) Contains the path specified in the Include attribute, up to the final backslash (\). For example: + Storage[4] := PathAddSeparator(ExtractFilePath(Item.ItemInclude)); + + // %(Directory) Contains the directory of the item, without the root directory. For example: + Index := CharPos(ItemFullInclude, '\'); + if Index > 0 then + // skip the root + Index := CharPos(ItemFullInclude, '\', Index + 1); + if Index > 0 then + Storage[5] := Copy(ItemFullInclude, Index + 1, Length(ItemFullInclude) - Index) + else + Storage[5] := ''; + + // %(RecursiveDir) + Storage[6] := ''; // TODO: path expansion + + // %(Identity) The item specified in the Include attribute.. For example: + Storage[7] := Item.ItemInclude; + + // %(ModifiedTime) Contains the timestamp from the last time the item was modified. For example: + if GetFileLastWrite(ItemFullInclude, LocalDateTime) then + Storage[8] := FormatDateTime(DateTimeFormat, LocalDateTime) + else + Storage[8] := ''; + + // %(CreatedTime) Contains the timestamp from when the item was created. For example: + if GetFileCreation(ItemFullInclude, LocalDateTime) then + Storage[9] := FormatDateTime(DateTimeFormat, LocalDateTime) + else + Storage[9] := ''; + + // %(AccessedTime) Contains the timestamp from the last time the time was accessed. + if GetFileLastAccess(ItemFullInclude, LocalDateTime) then + Storage[10] := FormatDateTime(DateTimeFormat, LocalDateTime) + else + Storage[10] := ''; + + for Index := Low(Formats) to High(Formats) do + {$IFDEF SUPPORTS_UNICODE} + Formats[Index].VPWideChar := PChar(Storage[Index]); + {$ELSE ~SUPPORTS_UNICODE} + Formats[Index].VPChar := PChar(Storage[Index]); + {$ENDIF ~SUPPORTS_UNICODE} + end; var + Index: Integer; + TransformPattern, TransformResult: string; + TransformParameters: TVarRecArray; + TransformStorage: TDynStringArray; +begin + TransformPattern := GetTransformPattern(Transform); + + Result := ''; + for Index := 0 to ItemList.Count - 1 do + begin + GetTransformParameters(TJclMsBuildItem(ItemList.Objects[Index]), TransformStorage, TransformParameters); + TransformResult := Format(TransformPattern, TransformParameters); + if Result <> '' then + Result := Result + ';' + TransformResult + else + Result := TransformResult; + end; +end; + +function TJclMsBuildParser.EvaluateFunctionProperty(const Command: string): string; +begin + if not Assigned(FOnFunctionProperty) or not FOnFunctionProperty(Self, Command, Result) then + raise EJclMsBuildError.CreateResFmt(@RsEFunctionProperty, [Command]); +end; + +function TJclMsBuildParser.EvaluateList(const Name: string): string; +var + Index: Integer; + Transform: string; + List: TStrings; +begin + Index := Pos('->', Name); + if Index = 0 then + begin + // no transformation + List := TStringList.Create; + try + FindItemIncludes(Name, List); + Result := StringsToStr(List, ';', False); + finally + List.Free; + end; + end + else + begin + Transform := Copy(Name, Index + 2, Length(Name) - Index - 1); + Transform := StrTrimCharLeft(StrTrimCharRight(Transform, NativeSingleQuote), NativeSingleQuote); + List := TStringList.Create; + try + FindItemIncludes(Copy(Name, 1, Index - 1), List); + Result := EvaluateTransform(List, Transform); + finally + List.Free; + end; + end; +end; + +function TJclMsBuildParser.EvaluateRegistryProperty(Root: HKEY; const Path, Name: string): string; +begin + if (not Assigned(FOnRegistryProperty) or not FOnRegistryProperty(Self, Root, Path, Name, Result)) and + (not RegReadStringEx(Root, Path, Name, Result, False)) then + raise EJclMsBuildError.CreateResFmt(@RsERegistryProperty, [RootKeyName(Root), Path, Name]); +end; + +function TJclMsBuildParser.FindItemDefinition( + const ItemName: string): TJclMsBuildItem; +var + Index: Integer; +begin + for Index := 0 to FItemDefinitions.Count - 1 do + begin + Result := TJclMsBuildItem(FItemDefinitions.Items[Index]); + if Result.ItemName = ItemName then + Exit; + end; + Result := nil; +end; + +procedure TJclMsBuildParser.FindItemIncludes(const ItemName: string; List: TStrings); +var + Index: Integer; + Item: TJclMsBuildItem; +begin + List.Clear; + List.BeginUpdate; + try + for Index := 0 to FItems.Count - 1 do + begin + Item := TJclMsBuildItem(FItems.Items[Index]); + if Item.ItemName = ItemName then + List.AddObject(Item.ItemInclude, Item); + end; + finally + List.EndUpdate; + end; +end; + +function TJclMsBuildParser.FindTarget(const TargetName: string): TJclMsBuildTarget; +var + Index: Integer; +begin + for Index := 0 to FTargets.Count - 1 do + begin + Result := TJclMsBuildTarget(FTargets.Items[Index]); + if Result.TargetName = TargetName then + Exit; + end; + Result := nil; +end; + +function TJclMsBuildParser.GetItem(Index: Integer): TJclMsBuildItem; +begin + Result := TJclMsBuildItem(FItems.Items[Index]); +end; + +function TJclMsBuildParser.GetItemCount: Integer; +begin + Result := FItems.Count; +end; + +function TJclMsBuildParser.GetItemDefinition( + Index: Integer): TJclMsBuildItem; +begin + Result := TJclMsBuildItem(FItemDefinitions.Items[Index]); +end; + +function TJclMsBuildParser.GetItemDefinitionCount: Integer; +begin + Result := FItemDefinitions.Count; +end; + +function TJclMsBuildParser.GetTarget(Index: Integer): TJclMsBuildTarget; +begin + Result := TJclMsBuildTarget(FTargets.Items[Index]); +end; + +function TJclMsBuildParser.GetTargetCount: Integer; +begin + Result := FTargets.Count; +end; + +function TJclMsBuildParser.GetUsingTask(Index: Integer): TJclMsBuildUsingTask; +begin + Result := TJclMsBuildUsingTask(FUsingTasks.Items[Index]); +end; + +function TJclMsBuildParser.GetUsingTaskCount: Integer; +begin + Result := FUsingTasks.Count; +end; + +procedure TJclMsBuildParser.Init; +begin + InitReservedProperties; + InitEnvironmentProperties; +end; + +procedure TJclMsBuildParser.InitEnvironmentProperties; +begin + Properties.EnvironmentProperties.Clear; + GetEnvironmentVars(Properties.EnvironmentProperties, True); + + // from http://msdn.microsoft.com/en-us/library/ms164309.aspx + + // MSBuildExtensionsPath + // can be overriden, not used by Embarcadero's project files + + // MSBuildExtensionsPath32 + // can be overriden, not used by Embarcadero's project files + + // MSBuildExtensionsPath64 + // can be overriden, not used by Embarcadero's project files +end; + +procedure TJclMsBuildParser.InitReservedProperties; +var + Index: Integer; + Path: string; + DotNetVersions: TStrings; +begin + Properties.ReservedProperties.Clear; + + // from http://msdn.microsoft.com/en-us/library/ms164309.aspx + + // MSBuildProjectDirectory + Properties.ReservedProperties.Values['MSBuildProjectDirectory'] := PathRemoveSeparator(ExtractFileDir(ProjectFileName)); + + // MSBuildProjectFile + Properties.ReservedProperties.Values['MSBuildProjectFile'] := ExtractFileName(ProjectFileName); + + // MSBuildProjectExtension + Properties.ReservedProperties.Values['MSBuildProjectExtension'] := ExtractFileExt(ProjectFileName); + + // MSBuildProjectFullPath + Properties.ReservedProperties.Values['MSBuildProjectFullPath'] := ProjectFileName; + + // MSBuildProjectName + Properties.ReservedProperties.Values['MSBuildProjectExtension'] := ChangeFileExt(ExtractFileName(ProjectFileName), ''); + + DotNetVersions := TStringList.Create; + try + TJclClrHost.GetClrVersions(DotNetVersions); + for Index := DotNetVersions.Count - 1 downto 0 do + begin + Path := DotNetVersions.Values[DotNetVersions.Names[Index]]; + if not FileExists(PathAddSeparator(Path) + 'MSBuild.exe') then + DotNetVersions.Delete(Index); + end; + + if DotNetVersion <> '' then + begin + Path := DotNetVersions.Values[DotNetVersion]; + // MSBuildToolsVersion + Properties.ReservedProperties.Values['MSBuildToolsVersion'] := DotNetVersion; + end + else + if DotNetVersions.Count > 0 then + begin + Path := DotNetVersions.Values[DotNetVersions.Names[0]]; + // MSBuildToolsVersion + Properties.ReservedProperties.Values['MSBuildToolsVersion'] := DotNetVersions.Names[0]; + end + else + Path := ''; + + if Path <> '' then + begin + // MSBuildBinPath + Properties.ReservedProperties.Values['MSBuildBinPath'] := Path; + // MSBuildToolsPath + Properties.ReservedProperties.Values['MSBuildToolsPath'] := Path; + end + else + raise EJclMsBuildError.CreateRes(@RsEMSBuildPath); + finally + DotNetVersions.Free; + end; + + // MSBuildProjectDefaultTargets + // postponed to the ParseProject + + // MSBuildExtensionsPath + // in the environment variables + + // MSBuildExtensionsPath32 + // in the environment variables + + // MSBuildExtensionsPath64 + // in the environment variables + + // MSBuildStartupDirectory + if WorkingDirectory <> '' then + Path := PathRemoveSeparator(WorkingDirectory) + else + Path := PathRemoveSeparator(ExtractFilePath(ProjectFileName)); + Properties.ReservedProperties.Values['MSBuildStartupDirectory'] := Path; + + // MSBuildNodeCount + Properties.ReservedProperties.Values['MSBuildNodeCount'] := '1'; + + // MSBuildLastTaskResult + Properties.ReservedProperties.Values['MSBuildLastTaskResult'] := 'true'; + + // MSBuildOverrideTasksPath + // supported only in .net 4.0 + + // MSBuildProgramFiles32 + Path := GetSpecialFolderLocation(CSIDL_PROGRAM_FILESX86); + if Path = '' then + Path := GetSpecialFolderLocation(CSIDL_PROGRAM_FILES); + Properties.ReservedProperties.Values['MSBuildProgramFiles32'] := Path; + + // MSBuildProjectDirectoryNoRoot + Path := PathRemoveSeparator(ExtractFilePath(ProjectFileName)); + if PathIsAbsolute(Path) and not PathIsUNC(Path) and (Path <> '') and CharIsDriveLetter(Path[1]) then + Path := Copy(Path, 3, Length(Path) - 2); + Properties.ReservedProperties.Values['MSBuildProjectDirectoryNoRoot'] := Path; + + // MSBuildThisFile + Properties.ReservedProperties.Values['MSBuildProjectDirectoryNoRoot'] := CurrentFileName; + + // MSBuildThisFileDirectory + Properties.ReservedProperties.Values['MSBuildProjectDirectoryNoRoot'] := PathRemoveSeparator(ExtractFilePath(CurrentFileName)); +end; + +procedure TJclMsBuildParser.Parse; +begin + FCurrentFileName := FProjectFileName; + ParseXml(FXml); +end; + +procedure TJclMsBuildParser.ParseChoose(XmlElem: TJclSimpleXmlElem); +var + Index: Integer; + Prop: TJclSimpleXmlProp; + SubElem: TJclSimpleXmlElem; + Executed, Otherwise: Boolean; +begin + for Index := 0 to XmlElem.PropertyCount - 1 do + begin + Prop := XmlElem.Properties.Item[Index]; + raise EJclMsBuildError.CreateResFmt(@RsEUnknownProperty, [Prop.Name]); + end; + + Executed := False; + Otherwise := False; + + for Index := 0 to XmlElem.ItemCount - 1 do + begin + SubElem := XmlElem.Items.Item[Index]; + if SubElem.Name = 'When' then + Executed := ParseWhen(SubElem, Executed) + else + if SubElem.Name = 'Otherwise' then + begin + if Otherwise then + raise EJclMsBuildError.CreateRes(@RsEMultipleOtherwise); + Otherwise := True; + Executed := ParseOtherwise(SubElem, Executed); + end + else + if not (SubElem is TJclSimpleXMLElemComment) then + raise EJclMsBuildError.CreateResFmt(@RsEUnknownElement, [SubElem.Name]); + end; +end; + +function TJclMsBuildParser.ParseCondition(const Condition: string): Boolean; +var + Position, Len: Integer; +begin + Len := Length(Condition); + Position := 1; + Result := ParseConditionLength(Condition, Position, Len); +end; + +function TJclMsBuildParser.ParseConditionLength(const Condition: string; var Position: Integer; Len: Integer): Boolean; +type + TOperator = (opUnknown, opAnd, opOr); +var + LeftOperand, RightOperand: Boolean; + MiddleOperator: TOperator; +begin + Result := True; + if Condition <> '' then + begin + // read first word + LeftOperand := ParseConditionOperand(Condition, Position, Len); + if (Position <= Len) and (Condition[Position] = '(') then + begin + // skip opening parenthesis + Inc(Position); + LeftOperand := ParseConditionLength(Condition, Position, Len); + while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do + Inc(Position); + if Condition[Position] <> ')' then + raise EJclMsBuildError.CreateResFmt(@RsEMissingParenthesis, [Condition]); + // skip closing parenthesis + Inc(Position); + end; + while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do + Inc(Position); + while True do + begin + // read infix operator + MiddleOperator := opUnknown; + if (Position <= (Len + 2)) and (MiddleOperator = opUnknown) then + begin + if ((Condition[Position] = 'A') or (Condition[Position] = 'a')) and + ((Condition[Position + 1] = 'N') or (Condition[Position + 1] = 'n')) and + ((Condition[Position + 2] = 'D') or (Condition[Position + 2] = 'd')) then + MiddleOperator := opAnd; + if MiddleOperator <> opUnknown then + Inc(Position, 3); + end; + if (Position <= (Len + 1)) and (MiddleOperator = opUnknown) then + begin + if ((Condition[Position] = 'O') or (Condition[Position] = 'o')) and + ((Condition[Position + 1] = 'R') or (Condition[Position + 1] = 'r')) then + MiddleOperator := opOr; + if MiddleOperator <> opUnknown then + Inc(Position, 2); + end; + if MiddleOperator <> opUnknown then + begin + // read right operand if any + RightOperand := ParseConditionOperand(Condition, Position, Len); + if (Position <= Len) and (Condition[Position] = '(') then + begin + // skip opening parenthesis + Inc(Position); + RightOperand := ParseConditionLength(Condition, Position, Len); + while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do + Inc(Position); + if Condition[Position] <> ')' then + raise EJclMsBuildError.CreateResFmt(@RsEMissingParenthesis, [Condition]); + // skip closing parenthesis + Inc(Position); + end; + while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do + Inc(Position); + + case MiddleOperator of + opUnknown: + raise EJclMsBuildError.CreateResFmt(@RsEUnknownOperator, [Condition]); + opAnd: + LeftOperand := LeftOperand and RightOperand; + opOr: + LeftOperand := LeftOperand or RightOperand; + end; + end + else + Break; + end; + // no second word + Result := LeftOperand + end; +end; + +function TJclMsBuildParser.ParseConditionOperand(const Condition: string; var Position: Integer; Len: Integer): Boolean; +type + TOperator = (opUnknown, opEqual, opNotEqual, opLess, opLessOrEqual, opGreater, OpGreaterOrEqual); +var + LeftString, RightString: string; + MiddleOperator: TOperator; +begin + Result := True; + if Condition <> '' then + begin + // read first word + LeftString := ParseConditionString(Condition, Position, Len); + if (LeftString = '') and (Position <= Len) and (Condition[Position] = '(') then + begin + // skip opening parenthesis + Inc(Position); + LeftString := BoolToStr(ParseConditionLength(Condition, Position, Len), True); + while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do + Inc(Position); + if Condition[Position] <> ')' then + raise EJclMsBuildError.CreateResFmt(@RsEMissingParenthesis, [Condition]); + // skip closing parenthesis + Inc(Position); + end; + while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do + Inc(Position); + // read infix operator + MiddleOperator := opUnknown; + if (Position <= (Len + 1)) and (MiddleOperator = opUnknown) then + begin + if (Condition[Position] = '=') and (Condition[Position + 1] = '=') then + MiddleOperator := opEqual + else + if (Condition[Position] = '!') and (Condition[Position + 1] = '=') then + MiddleOperator := opNotEqual + else + if (Condition[Position] = '<') and (Condition[Position + 1] = '=') then + MiddleOperator := opLessOrEqual + else + if (Condition[Position] = '>') and (Condition[Position + 1] = '=') then + MiddleOperator := OpGreaterOrEqual; + if MiddleOperator <> opUnknown then + Inc(Position, 2); + end; + if (Position <= Len) and (MiddleOperator = opUnknown) then + begin + if Condition[Position] = '<' then + MiddleOperator := opLess + else + if Condition[Position] = '>' then + MiddleOperator := opGreater; + if MiddleOperator <> opUnknown then + Inc(Position); + end; + if MiddleOperator <> opUnknown then + begin + // read right operand if needed + RightString := ParseConditionString(Condition, Position, Len); + if (RightString = '') and (Position <= Len) and (Condition[Position] = '(') then + begin + // skip opening parenthesis + Inc(Position); + RightString := BoolToStr(ParseConditionLength(Condition, Position, Len), True); + while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do + Inc(Position); + if Condition[Position] <> ')' then + raise EJclMsBuildError.CreateResFmt(@RsEMissingParenthesis, [Condition]); + // skip closing parenthesis + Inc(Position); + end; + while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do + Inc(Position); + + case MiddleOperator of + opUnknown: + raise EJclMsBuildError.CreateResFmt(@RsEUnknownOperator, [Condition]); + opEqual: + Result := LeftString = RightString; + opNotEqual: + Result := LeftString <> RightString; + opLess: + Result := StrToInt(LeftString) < StrToInt(RightString); + opLessOrEqual: + Result := StrToInt(LeftString) <= StrToInt(RightString); + opGreater: + Result := StrToInt(LeftString) > StrToInt(RightString); + OpGreaterOrEqual: + Result := StrToInt(LeftString) >= StrToInt(RightString); + end; + end + else + if LeftString = '' then + Result := True + else + // no second word + Result := StrToBool(LeftString) + end; +end; + +function TJclMsBuildParser.ParseConditionString(const Condition: string; var Position: Integer; Len: Integer): string; +var StartPos, EndPos: Integer; HasQuote: Boolean; FileOrDirectory: string; @@ -126,7 +1628,7 @@ while (Position <= Len) and (Condition[Position] <> NativeSingleQuote) do Inc(Position); if Position > Len then - raise EJclMsBuildError.CreateRes(@RsEEndOfString); + raise EJclMsBuildError.CreateResFmt(@RsEEndOfString, [Condition]); EndPos := Position; // skip closing quote Inc(Position); @@ -144,7 +1646,7 @@ if (Result = '') and (Condition[StartPos] = '!') and not HasQuote then begin Inc(Position); - Result := BoolToStr(not StrToBool(ParseString(Condition, Position, Len, Defines)), True); + Result := BoolToStr(not StrToBool(ParseConditionString(Condition, Position, Len)), True); end else if (CompareText(Result, 'Exists') = 0) and not HasQuote then @@ -153,15 +1655,15 @@ Inc(Position); // skip opening parenthesis if Condition[Position] <> '(' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); + raise EJclMsBuildError.CreateResFmt(@RsEMissingParenthesis, [Condition]); Inc(Position); - FileOrDirectory := ParseString(Condition, Position, Len, Defines); + FileOrDirectory := ParseConditionString(Condition, Position, Len); Result := BoolToStr(FileExists(FileOrDirectory) or DirectoryExists(FileOrDirectory), True); while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do Inc(Position); // skip closing parenthesis if Condition[Position] <> ')' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); + raise EJclMsBuildError.CreateResFmt(@RsEMissingParenthesis, [Condition]); Inc(Position); end else @@ -171,153 +1673,861 @@ Inc(Position); // skip opening parenthesis if Condition[Position] <> '(' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); + raise EJclMsBuildError.CreateResFmt(@RsEMissingParenthesis, [Condition]); Inc(Position); - FileOrDirectory := ParseString(Condition, Position, Len, Defines); + FileOrDirectory := ParseConditionString(Condition, Position, Len); Result := BoolToStr((FileOrDirectory <> '') and (FileOrDirectory[Length(FileOrDirectory)] = PathDelim), True); while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do Inc(Position); // skip closing parenthesis if Condition[Position] <> ')' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); + raise EJclMsBuildError.CreateResFmt(@RsEMissingParenthesis, [Condition]); Inc(Position); end else - Result := EvaluateString(Result, Defines); + Result := EvaluateString(Result); // skip tailing spaces while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do Inc(Position); end; -function ParseCondition(const Condition: string; var Position: Integer; Len: Integer; - Defines: TStrings): Boolean; -type - TOperator = (opUnknown, opEqual, opNotEqual, opLess, opLessOrEqual, opGreater, OpGreaterOrEqual, opAnd, opOr); +procedure TJclMsBuildParser.ParseImport(XmlElem: TJclSimpleXmlElem); var - LeftOperand, RightOperand: string; - MiddleOperator: TOperator; + Index: Integer; + Prop: TJclSimpleXMLProp; + SubElem, OldProjectExtensions: TJclSimpleXmlElem; + Condition: Boolean; + Project: TFileName; + SubXml: TJclSimpleXml; + SubOwnsXml: Boolean; + OldCurrentFileName: TFileName; begin - Result := True; - if Condition <> '' then + Condition := True; + + for Index := 0 to XmlElem.PropertyCount - 1 do ... [truncated message content] |
From: <ou...@us...> - 2011-08-12 22:41:14
|
Revision: 3572 http://jcl.svn.sourceforge.net/jcl/?rev=3572&view=rev Author: outchy Date: 2011-08-12 22:41:06 +0000 (Fri, 12 Aug 2011) Log Message: ----------- New function RootKeyValue to return the HKEY associated to a known root key name. Add RootKeyName declaration to the unit interface. Modified Paths: -------------- trunk/jcl/source/windows/JclRegistry.pas Modified: trunk/jcl/source/windows/JclRegistry.pas =================================================================== --- trunk/jcl/source/windows/JclRegistry.pas 2011-08-12 22:39:47 UTC (rev 3571) +++ trunk/jcl/source/windows/JclRegistry.pas 2011-08-12 22:41:06 UTC (rev 3572) @@ -86,6 +86,9 @@ HKDD = DelphiHKEY(HKEY_DYN_DATA); {$ENDIF FPC} +function RootKeyName(const RootKey: THandle): string; +function RootKeyValue(const Name: string): THandle; + const RegKeyDelimiter = '\'; @@ -447,6 +450,19 @@ end; end; +function RootKeyValue(const Name: string): THandle; +var + Index: Integer; +begin + for Index := Low(RootKeys) to High(RootKeys) do + if RootKeys[Index].AnsiName = Name then + begin + Result := RootKeys[Index].Key; + Exit; + end; + raise EJclRegistryError.CreateResFmt(@RsInconsistentPath, [Name]); +end; + procedure ReadError(const RootKey: THandle; const Key: string); begin raise EJclRegistryError.CreateResFmt(@RsUnableToOpenKeyRead, [RootKeyName(RootKey), Key]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-12 22:39:54
|
Revision: 3571 http://jcl.svn.sourceforge.net/jcl/?rev=3571&view=rev Author: outchy Date: 2011-08-12 22:39:47 +0000 (Fri, 12 Aug 2011) Log Message: ----------- New CSIDL to get the path to the 32-bit directory for program files. Modified Paths: -------------- trunk/jcl/source/prototypes/win32api/ShlObj.int trunk/jcl/source/windows/JclWin32.pas Modified: trunk/jcl/source/prototypes/win32api/ShlObj.int =================================================================== --- trunk/jcl/source/prototypes/win32api/ShlObj.int 2011-08-12 15:13:14 UTC (rev 3570) +++ trunk/jcl/source/prototypes/win32api/ShlObj.int 2011-08-12 22:39:47 UTC (rev 3571) @@ -7,6 +7,7 @@ CSIDL_PROGRAM_FILES = $0026; { C:\Program Files } CSIDL_MYPICTURES = $0027; { C:\Program Files\My Pictures } CSIDL_PROFILE = $0028; { USERPROFILE } + CSIDL_PROGRAM_FILESX86 = $002A; { C:\Program Files (x86)\My Pictures } CSIDL_PROGRAM_FILES_COMMON = $002B; { C:\Program Files\Common } CSIDL_COMMON_TEMPLATES = $002D; { All Users\Templates } CSIDL_COMMON_DOCUMENTS = $002E; { All Users\Documents } Modified: trunk/jcl/source/windows/JclWin32.pas =================================================================== --- trunk/jcl/source/windows/JclWin32.pas 2011-08-12 15:13:14 UTC (rev 3570) +++ trunk/jcl/source/windows/JclWin32.pas 2011-08-12 22:39:47 UTC (rev 3571) @@ -5626,6 +5626,7 @@ CSIDL_PROGRAM_FILES = $0026; { C:\Program Files } CSIDL_MYPICTURES = $0027; { C:\Program Files\My Pictures } CSIDL_PROFILE = $0028; { USERPROFILE } + CSIDL_PROGRAM_FILESX86 = $002A; { C:\Program Files (x86)\My Pictures } CSIDL_PROGRAM_FILES_COMMON = $002B; { C:\Program Files\Common } CSIDL_COMMON_TEMPLATES = $002D; { All Users\Templates } CSIDL_COMMON_DOCUMENTS = $002E; { All Users\Documents } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-12 15:13:22
|
Revision: 3570 http://jcl.svn.sourceforge.net/jcl/?rev=3570&view=rev Author: outchy Date: 2011-08-12 15:13:14 +0000 (Fri, 12 Aug 2011) Log Message: ----------- MsBuild project file contains many windows-only features (registry, .net functions...) and a complete emulation cannot be crossplatform: JclMsBuild.pas is moved from jcl/source/common to jcl/source/windows. Modified Paths: -------------- trunk/jcl/packages/c6/JclDeveloperTools.bpk trunk/jcl/packages/c6/JclDeveloperTools.dpk trunk/jcl/packages/cs1/JclDeveloperTools.dpk trunk/jcl/packages/d10/JclDeveloperTools.dpk trunk/jcl/packages/d11/JclDeveloperTools.dpk trunk/jcl/packages/d11/JclDeveloperTools.dproj trunk/jcl/packages/d12/JclDeveloperTools.dpk trunk/jcl/packages/d12/JclDeveloperTools.dproj trunk/jcl/packages/d14/JclDeveloperTools.dpk trunk/jcl/packages/d14/JclDeveloperTools.dproj trunk/jcl/packages/d15/JclDeveloperTools.dpk trunk/jcl/packages/d15/JclDeveloperTools.dproj trunk/jcl/packages/d6/JclDeveloperTools.dpk trunk/jcl/packages/d7/JclDeveloperTools.dpk trunk/jcl/packages/d8/JclDeveloperTools.dpk trunk/jcl/packages/d9/JclDeveloperTools.dpk trunk/jcl/packages/fpc/JclDeveloperTools.lpk trunk/jcl/packages/fpc/JclDeveloperTools.pas trunk/jcl/packages/help/JclDeveloperTools.dox trunk/jcl/packages/xml/JclDeveloperTools-R.xml trunk/jcl/source/common/JclDevToolsResources.pas Added Paths: ----------- trunk/jcl/source/windows/JclMsBuild.pas Removed Paths: ------------- trunk/jcl/source/common/JclMsBuild.pas Modified: trunk/jcl/packages/c6/JclDeveloperTools.bpk =================================================================== --- trunk/jcl/packages/c6/JclDeveloperTools.bpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/c6/JclDeveloperTools.bpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:45:40 UTC + Last generated: 12-08-2011 15:08:23 UTC ***************************************************************************** --> <PROJECT> @@ -17,7 +17,6 @@ ..\..\lib\c6\JclCompilerUtils.obj ..\..\lib\c6\JclDevToolsResources.obj ..\..\lib\c6\JclIDEUtils.obj - ..\..\lib\c6\JclMsBuild.obj ..\..\lib\c6\JclPreProcessorAlgorithmsTemplates.obj ..\..\lib\c6\JclPreProcessorArrayListsTemplates.obj ..\..\lib\c6\JclPreProcessorArraySetsTemplates.obj @@ -42,6 +41,7 @@ ..\..\lib\c6\JclPreProcessorVectorsTemplates.obj ..\..\lib\c6\JclUsesUtils.obj ..\..\lib\c6\JclHelpUtils.obj + ..\..\lib\c6\JclMsBuild.obj ..\..\lib\c6\MSHelpServices_TLB.obj "/> <RESFILES value="JclDeveloperTools.res"/> @@ -102,7 +102,6 @@ <FILE FILENAME="..\..\source\common\JclCompilerUtils.pas" FORMNAME="" UNITNAME="JclCompilerUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclDevToolsResources.pas" FORMNAME="" UNITNAME="JclDevToolsResources" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclIDEUtils.pas" FORMNAME="" UNITNAME="JclIDEUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclMsBuild.pas" FORMNAME="" UNITNAME="JclMsBuild" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorAlgorithmsTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPreProcessorArrayListsTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorArrayListsTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPreProcessorArraySetsTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorArraySetsTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> @@ -127,6 +126,7 @@ <FILE FILENAME="..\..\source\common\JclPreProcessorVectorsTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorVectorsTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclUsesUtils.pas" FORMNAME="" UNITNAME="JclUsesUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\windows\JclHelpUtils.pas" FORMNAME="" UNITNAME="JclHelpUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\source\windows\JclMsBuild.pas" FORMNAME="" UNITNAME="JclMsBuild" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\windows\MSHelpServices_TLB.pas" FORMNAME="" UNITNAME="MSHelpServices_TLB" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> Modified: trunk/jcl/packages/c6/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/c6/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/c6/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:45:43 UTC + Last generated: 12-08-2011 15:08:23 UTC ----------------------------------------------------------------------------- } @@ -51,7 +51,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , @@ -76,6 +75,7 @@ JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , JclUsesUtils in '..\..\source\common\JclUsesUtils.pas' , JclHelpUtils in '..\..\source\windows\JclHelpUtils.pas' , + JclMsBuild in '..\..\source\windows\JclMsBuild.pas' , MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ; end. Modified: trunk/jcl/packages/cs1/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/cs1/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/cs1/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:45:54 UTC + Last generated: 12-08-2011 15:08:25 UTC ----------------------------------------------------------------------------- } @@ -50,7 +50,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , Modified: trunk/jcl/packages/d10/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d10/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d10/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:46:00 UTC + Last generated: 12-08-2011 15:08:25 UTC ----------------------------------------------------------------------------- } @@ -52,7 +52,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , @@ -77,6 +76,7 @@ JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , JclUsesUtils in '..\..\source\common\JclUsesUtils.pas' , JclHelpUtils in '..\..\source\windows\JclHelpUtils.pas' , + JclMsBuild in '..\..\source\windows\JclMsBuild.pas' , MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ; Modified: trunk/jcl/packages/d11/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d11/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d11/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:46:02 UTC + Last generated: 12-08-2011 15:08:25 UTC ----------------------------------------------------------------------------- } @@ -53,7 +53,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , @@ -78,6 +77,7 @@ JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , JclUsesUtils in '..\..\source\common\JclUsesUtils.pas' , JclHelpUtils in '..\..\source\windows\JclHelpUtils.pas' , + JclMsBuild in '..\..\source\windows\JclMsBuild.pas' , MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ; Modified: trunk/jcl/packages/d11/JclDeveloperTools.dproj =================================================================== --- trunk/jcl/packages/d11/JclDeveloperTools.dproj 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d11/JclDeveloperTools.dproj 2011-08-12 15:13:14 UTC (rev 3570) @@ -92,7 +92,6 @@ <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> - <DCCReference Include="..\..\source\common\JclMsBuild.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorArrayListsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorArraySetsTemplates.pas"/> @@ -117,6 +116,7 @@ <DCCReference Include="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclUsesUtils.pas"/> <DCCReference Include="..\..\source\windows\JclHelpUtils.pas"/> + <DCCReference Include="..\..\source\windows\JclMsBuild.pas"/> <DCCReference Include="..\..\source\windows\MSHelpServices_TLB.pas"/> </ItemGroup> </Project> Modified: trunk/jcl/packages/d12/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d12/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d12/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:46:05 UTC + Last generated: 12-08-2011 15:08:25 UTC ----------------------------------------------------------------------------- } @@ -52,7 +52,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , @@ -77,6 +76,7 @@ JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , JclUsesUtils in '..\..\source\common\JclUsesUtils.pas' , JclHelpUtils in '..\..\source\windows\JclHelpUtils.pas' , + JclMsBuild in '..\..\source\windows\JclMsBuild.pas' , MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ; Modified: trunk/jcl/packages/d12/JclDeveloperTools.dproj =================================================================== --- trunk/jcl/packages/d12/JclDeveloperTools.dproj 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d12/JclDeveloperTools.dproj 2011-08-12 15:13:14 UTC (rev 3570) @@ -67,7 +67,6 @@ <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> - <DCCReference Include="..\..\source\common\JclMsBuild.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorArrayListsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorArraySetsTemplates.pas"/> @@ -92,6 +91,7 @@ <DCCReference Include="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclUsesUtils.pas"/> <DCCReference Include="..\..\source\windows\JclHelpUtils.pas"/> + <DCCReference Include="..\..\source\windows\JclMsBuild.pas"/> <DCCReference Include="..\..\source\windows\MSHelpServices_TLB.pas"/> <BuildConfiguration Include="Base"> <Key>Base</Key> Modified: trunk/jcl/packages/d14/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d14/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d14/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:46:10 UTC + Last generated: 12-08-2011 15:08:26 UTC ----------------------------------------------------------------------------- } @@ -52,7 +52,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , @@ -77,6 +76,7 @@ JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , JclUsesUtils in '..\..\source\common\JclUsesUtils.pas' , JclHelpUtils in '..\..\source\windows\JclHelpUtils.pas' , + JclMsBuild in '..\..\source\windows\JclMsBuild.pas' , MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ; Modified: trunk/jcl/packages/d14/JclDeveloperTools.dproj =================================================================== --- trunk/jcl/packages/d14/JclDeveloperTools.dproj 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d14/JclDeveloperTools.dproj 2011-08-12 15:13:14 UTC (rev 3570) @@ -69,7 +69,6 @@ <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> - <DCCReference Include="..\..\source\common\JclMsBuild.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorArrayListsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorArraySetsTemplates.pas"/> @@ -94,6 +93,7 @@ <DCCReference Include="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclUsesUtils.pas"/> <DCCReference Include="..\..\source\windows\JclHelpUtils.pas"/> + <DCCReference Include="..\..\source\windows\JclMsBuild.pas"/> <DCCReference Include="..\..\source\windows\MSHelpServices_TLB.pas"/> <BuildConfiguration Include="Base"> <Key>Base</Key> Modified: trunk/jcl/packages/d15/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d15/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d15/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:46:15 UTC + Last generated: 12-08-2011 15:08:26 UTC ----------------------------------------------------------------------------- } @@ -51,7 +51,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , @@ -76,6 +75,7 @@ JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , JclUsesUtils in '..\..\source\common\JclUsesUtils.pas' , JclHelpUtils in '..\..\source\windows\JclHelpUtils.pas' , + JclMsBuild in '..\..\source\windows\JclMsBuild.pas' , MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ; Modified: trunk/jcl/packages/d15/JclDeveloperTools.dproj =================================================================== --- trunk/jcl/packages/d15/JclDeveloperTools.dproj 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d15/JclDeveloperTools.dproj 2011-08-12 15:13:14 UTC (rev 3570) @@ -76,7 +76,6 @@ <DCCReference Include="..\..\source\common\JclCompilerUtils.pas"/> <DCCReference Include="..\..\source\common\JclDevToolsResources.pas"/> <DCCReference Include="..\..\source\common\JclIDEUtils.pas"/> - <DCCReference Include="..\..\source\common\JclMsBuild.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorArrayListsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorArraySetsTemplates.pas"/> @@ -101,6 +100,7 @@ <DCCReference Include="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclUsesUtils.pas"/> <DCCReference Include="..\..\source\windows\JclHelpUtils.pas"/> + <DCCReference Include="..\..\source\windows\JclMsBuild.pas"/> <DCCReference Include="..\..\source\windows\MSHelpServices_TLB.pas"/> <BuildConfiguration Include="Release"> <Key>Cfg_Release</Key> Modified: trunk/jcl/packages/d6/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d6/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d6/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:45:46 UTC + Last generated: 12-08-2011 15:08:23 UTC ----------------------------------------------------------------------------- } @@ -51,7 +51,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , @@ -76,6 +75,7 @@ JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , JclUsesUtils in '..\..\source\common\JclUsesUtils.pas' , JclHelpUtils in '..\..\source\windows\JclHelpUtils.pas' , + JclMsBuild in '..\..\source\windows\JclMsBuild.pas' , MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ; Modified: trunk/jcl/packages/d7/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d7/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d7/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:45:49 UTC + Last generated: 12-08-2011 15:08:24 UTC ----------------------------------------------------------------------------- } @@ -51,7 +51,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , @@ -76,6 +75,7 @@ JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , JclUsesUtils in '..\..\source\common\JclUsesUtils.pas' , JclHelpUtils in '..\..\source\windows\JclHelpUtils.pas' , + JclMsBuild in '..\..\source\windows\JclMsBuild.pas' , MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ; Modified: trunk/jcl/packages/d8/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d8/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d8/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:45:52 UTC + Last generated: 12-08-2011 15:08:24 UTC ----------------------------------------------------------------------------- } @@ -50,7 +50,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , Modified: trunk/jcl/packages/d9/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d9/JclDeveloperTools.dpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/d9/JclDeveloperTools.dpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:45:56 UTC + Last generated: 12-08-2011 15:08:25 UTC ----------------------------------------------------------------------------- } @@ -51,7 +51,6 @@ JclCompilerUtils in '..\..\source\common\JclCompilerUtils.pas' , JclDevToolsResources in '..\..\source\common\JclDevToolsResources.pas' , JclIDEUtils in '..\..\source\common\JclIDEUtils.pas' , - JclMsBuild in '..\..\source\common\JclMsBuild.pas' , JclPreProcessorAlgorithmsTemplates in '..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas' , JclPreProcessorArrayListsTemplates in '..\..\source\common\JclPreProcessorArrayListsTemplates.pas' , JclPreProcessorArraySetsTemplates in '..\..\source\common\JclPreProcessorArraySetsTemplates.pas' , @@ -76,6 +75,7 @@ JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , JclUsesUtils in '..\..\source\common\JclUsesUtils.pas' , JclHelpUtils in '..\..\source\windows\JclHelpUtils.pas' , + JclMsBuild in '..\..\source\windows\JclMsBuild.pas' , MSHelpServices_TLB in '..\..\source\windows\MSHelpServices_TLB.pas' ; Modified: trunk/jcl/packages/fpc/JclDeveloperTools.lpk =================================================================== --- trunk/jcl/packages/fpc/JclDeveloperTools.lpk 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/fpc/JclDeveloperTools.lpk 2011-08-12 15:13:14 UTC (rev 3570) @@ -53,104 +53,104 @@ <UnitName Value="JclIDEUtils"/> </Item3> <Item4> - <Filename Value="..\..\source\common\JclMsBuild.pas"/> - <UnitName Value="JclMsBuild"/> + <Filename Value="..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas"/> + <UnitName Value="JclPreProcessorAlgorithmsTemplates"/> </Item4> <Item5> - <Filename Value="..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas"/> - <UnitName Value="JclPreProcessorAlgorithmsTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorArrayListsTemplates.pas"/> + <UnitName Value="JclPreProcessorArrayListsTemplates"/> </Item5> <Item6> - <Filename Value="..\..\source\common\JclPreProcessorArrayListsTemplates.pas"/> - <UnitName Value="JclPreProcessorArrayListsTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorArraySetsTemplates.pas"/> + <UnitName Value="JclPreProcessorArraySetsTemplates"/> </Item6> <Item7> - <Filename Value="..\..\source\common\JclPreProcessorArraySetsTemplates.pas"/> - <UnitName Value="JclPreProcessorArraySetsTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorBinaryTreesTemplates.pas"/> + <UnitName Value="JclPreProcessorBinaryTreesTemplates"/> </Item7> <Item8> - <Filename Value="..\..\source\common\JclPreProcessorBinaryTreesTemplates.pas"/> - <UnitName Value="JclPreProcessorBinaryTreesTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorContainer1DTemplates.pas"/> + <UnitName Value="JclPreProcessorContainer1DTemplates"/> </Item8> <Item9> - <Filename Value="..\..\source\common\JclPreProcessorContainer1DTemplates.pas"/> - <UnitName Value="JclPreProcessorContainer1DTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorContainer2DTemplates.pas"/> + <UnitName Value="JclPreProcessorContainer2DTemplates"/> </Item9> <Item10> - <Filename Value="..\..\source\common\JclPreProcessorContainer2DTemplates.pas"/> - <UnitName Value="JclPreProcessorContainer2DTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorContainerIntfTemplates.pas"/> + <UnitName Value="JclPreProcessorContainerIntfTemplates"/> </Item10> <Item11> - <Filename Value="..\..\source\common\JclPreProcessorContainerIntfTemplates.pas"/> - <UnitName Value="JclPreProcessorContainerIntfTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorContainerKnownMaps.pas"/> + <UnitName Value="JclPreProcessorContainerKnownMaps"/> </Item11> <Item12> - <Filename Value="..\..\source\common\JclPreProcessorContainerKnownMaps.pas"/> - <UnitName Value="JclPreProcessorContainerKnownMaps"/> + <Filename Value="..\..\source\common\JclPreProcessorContainerKnownTypes.pas"/> + <UnitName Value="JclPreProcessorContainerKnownTypes"/> </Item12> <Item13> - <Filename Value="..\..\source\common\JclPreProcessorContainerKnownTypes.pas"/> - <UnitName Value="JclPreProcessorContainerKnownTypes"/> + <Filename Value="..\..\source\common\JclPreProcessorContainerTemplates.pas"/> + <UnitName Value="JclPreProcessorContainerTemplates"/> </Item13> <Item14> - <Filename Value="..\..\source\common\JclPreProcessorContainerTemplates.pas"/> - <UnitName Value="JclPreProcessorContainerTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorContainerTypes.pas"/> + <UnitName Value="JclPreProcessorContainerTypes"/> </Item14> <Item15> - <Filename Value="..\..\source\common\JclPreProcessorContainerTypes.pas"/> - <UnitName Value="JclPreProcessorContainerTypes"/> + <Filename Value="..\..\source\common\JclPreProcessorExcDlgTemplates.pas"/> + <UnitName Value="JclPreProcessorExcDlgTemplates"/> </Item15> <Item16> - <Filename Value="..\..\source\common\JclPreProcessorExcDlgTemplates.pas"/> - <UnitName Value="JclPreProcessorExcDlgTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorHashMapsTemplates.pas"/> + <UnitName Value="JclPreProcessorHashMapsTemplates"/> </Item16> <Item17> - <Filename Value="..\..\source\common\JclPreProcessorHashMapsTemplates.pas"/> - <UnitName Value="JclPreProcessorHashMapsTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorLexer.pas"/> + <UnitName Value="JclPreProcessorLexer"/> </Item17> <Item18> - <Filename Value="..\..\source\common\JclPreProcessorLexer.pas"/> - <UnitName Value="JclPreProcessorLexer"/> + <Filename Value="..\..\source\common\JclPreProcessorLinkedListsTemplates.pas"/> + <UnitName Value="JclPreProcessorLinkedListsTemplates"/> </Item18> <Item19> - <Filename Value="..\..\source\common\JclPreProcessorLinkedListsTemplates.pas"/> - <UnitName Value="JclPreProcessorLinkedListsTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorParser.pas"/> + <UnitName Value="JclPreProcessorParser"/> </Item19> <Item20> - <Filename Value="..\..\source\common\JclPreProcessorParser.pas"/> - <UnitName Value="JclPreProcessorParser"/> + <Filename Value="..\..\source\common\JclPreProcessorQueuesTemplates.pas"/> + <UnitName Value="JclPreProcessorQueuesTemplates"/> </Item20> <Item21> - <Filename Value="..\..\source\common\JclPreProcessorQueuesTemplates.pas"/> - <UnitName Value="JclPreProcessorQueuesTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorSortedMapsTemplates.pas"/> + <UnitName Value="JclPreProcessorSortedMapsTemplates"/> </Item21> <Item22> - <Filename Value="..\..\source\common\JclPreProcessorSortedMapsTemplates.pas"/> - <UnitName Value="JclPreProcessorSortedMapsTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorStacksTemplates.pas"/> + <UnitName Value="JclPreProcessorStacksTemplates"/> </Item22> <Item23> - <Filename Value="..\..\source\common\JclPreProcessorStacksTemplates.pas"/> - <UnitName Value="JclPreProcessorStacksTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorTemplates.pas"/> + <UnitName Value="JclPreProcessorTemplates"/> </Item23> <Item24> - <Filename Value="..\..\source\common\JclPreProcessorTemplates.pas"/> - <UnitName Value="JclPreProcessorTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorTreesTemplates.pas"/> + <UnitName Value="JclPreProcessorTreesTemplates"/> </Item24> <Item25> - <Filename Value="..\..\source\common\JclPreProcessorTreesTemplates.pas"/> - <UnitName Value="JclPreProcessorTreesTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> + <UnitName Value="JclPreProcessorVectorsTemplates"/> </Item25> <Item26> - <Filename Value="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> - <UnitName Value="JclPreProcessorVectorsTemplates"/> + <Filename Value="..\..\source\common\JclUsesUtils.pas"/> + <UnitName Value="JclUsesUtils"/> </Item26> <Item27> - <Filename Value="..\..\source\common\JclUsesUtils.pas"/> - <UnitName Value="JclUsesUtils"/> + <Filename Value="..\..\source\windows\JclHelpUtils.pas"/> + <UnitName Value="JclHelpUtils"/> </Item27> <Item28> - <Filename Value="..\..\source\windows\JclHelpUtils.pas"/> - <UnitName Value="JclHelpUtils"/> + <Filename Value="..\..\source\windows\JclMsBuild.pas"/> + <UnitName Value="JclMsBuild"/> </Item28> <Item29> <Filename Value="..\..\source\windows\MSHelpServices_TLB.pas"/> Modified: trunk/jcl/packages/fpc/JclDeveloperTools.pas =================================================================== --- trunk/jcl/packages/fpc/JclDeveloperTools.pas 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/fpc/JclDeveloperTools.pas 2011-08-12 15:13:14 UTC (rev 3570) @@ -3,7 +3,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 27-03-2011 20:32:38 UTC + Last generated: 12-08-2011 15:08:23 UTC ----------------------------------------------------------------------------- } @@ -15,7 +15,6 @@ JclCompilerUtils, JclDevToolsResources, JclIDEUtils, - JclMsBuild, JclPreProcessorAlgorithmsTemplates, JclPreProcessorArrayListsTemplates, JclPreProcessorArraySetsTemplates, @@ -40,6 +39,7 @@ JclPreProcessorVectorsTemplates, JclUsesUtils, JclHelpUtils, + JclMsBuild, MSHelpServices_TLB ; Modified: trunk/jcl/packages/help/JclDeveloperTools.dox =================================================================== --- trunk/jcl/packages/help/JclDeveloperTools.dox 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/help/JclDeveloperTools.dox 2011-08-12 15:13:14 UTC (rev 3570) @@ -36,31 +36,31 @@ File0=..\..\source\common\JclCompilerUtils.pas File1=..\..\source\common\JclDevToolsResources.pas File2=..\..\source\common\JclIDEUtils.pas -File3=..\..\source\common\JclMsBuild.pas -File4=..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas -File5=..\..\source\common\JclPreProcessorArrayListsTemplates.pas -File6=..\..\source\common\JclPreProcessorArraySetsTemplates.pas -File7=..\..\source\common\JclPreProcessorBinaryTreesTemplates.pas -File8=..\..\source\common\JclPreProcessorContainer1DTemplates.pas -File9=..\..\source\common\JclPreProcessorContainer2DTemplates.pas -File10=..\..\source\common\JclPreProcessorContainerIntfTemplates.pas -File11=..\..\source\common\JclPreProcessorContainerKnownMaps.pas -File12=..\..\source\common\JclPreProcessorContainerKnownTypes.pas -File13=..\..\source\common\JclPreProcessorContainerTemplates.pas -File14=..\..\source\common\JclPreProcessorContainerTypes.pas -File15=..\..\source\common\JclPreProcessorExcDlgTemplates.pas -File16=..\..\source\common\JclPreProcessorHashMapsTemplates.pas -File17=..\..\source\common\JclPreProcessorLexer.pas -File18=..\..\source\common\JclPreProcessorLinkedListsTemplates.pas -File19=..\..\source\common\JclPreProcessorParser.pas -File20=..\..\source\common\JclPreProcessorQueuesTemplates.pas -File21=..\..\source\common\JclPreProcessorSortedMapsTemplates.pas -File22=..\..\source\common\JclPreProcessorStacksTemplates.pas -File23=..\..\source\common\JclPreProcessorTemplates.pas -File24=..\..\source\common\JclPreProcessorTreesTemplates.pas -File25=..\..\source\common\JclPreProcessorVectorsTemplates.pas -File26=..\..\source\common\JclUsesUtils.pas -File27=..\..\source\windows\JclHelpUtils.pas +File3=..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas +File4=..\..\source\common\JclPreProcessorArrayListsTemplates.pas +File5=..\..\source\common\JclPreProcessorArraySetsTemplates.pas +File6=..\..\source\common\JclPreProcessorBinaryTreesTemplates.pas +File7=..\..\source\common\JclPreProcessorContainer1DTemplates.pas +File8=..\..\source\common\JclPreProcessorContainer2DTemplates.pas +File9=..\..\source\common\JclPreProcessorContainerIntfTemplates.pas +File10=..\..\source\common\JclPreProcessorContainerKnownMaps.pas +File11=..\..\source\common\JclPreProcessorContainerKnownTypes.pas +File12=..\..\source\common\JclPreProcessorContainerTemplates.pas +File13=..\..\source\common\JclPreProcessorContainerTypes.pas +File14=..\..\source\common\JclPreProcessorExcDlgTemplates.pas +File15=..\..\source\common\JclPreProcessorHashMapsTemplates.pas +File16=..\..\source\common\JclPreProcessorLexer.pas +File17=..\..\source\common\JclPreProcessorLinkedListsTemplates.pas +File18=..\..\source\common\JclPreProcessorParser.pas +File19=..\..\source\common\JclPreProcessorQueuesTemplates.pas +File20=..\..\source\common\JclPreProcessorSortedMapsTemplates.pas +File21=..\..\source\common\JclPreProcessorStacksTemplates.pas +File22=..\..\source\common\JclPreProcessorTemplates.pas +File23=..\..\source\common\JclPreProcessorTreesTemplates.pas +File24=..\..\source\common\JclPreProcessorVectorsTemplates.pas +File25=..\..\source\common\JclUsesUtils.pas +File26=..\..\source\windows\JclHelpUtils.pas +File27=..\..\source\windows\JclMsBuild.pas File28=..\..\source\windows\MSHelpServices_TLB.pas File29=..\..\..\help\Common.dtx File30=..\..\..\help\JclDeveloperTools.dtx Modified: trunk/jcl/packages/xml/JclDeveloperTools-R.xml =================================================================== --- trunk/jcl/packages/xml/JclDeveloperTools-R.xml 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/packages/xml/JclDeveloperTools-R.xml 2011-08-12 15:13:14 UTC (rev 3570) @@ -21,7 +21,6 @@ <File Name="..\..\source\common\JclCompilerUtils.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclDevToolsResources.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclIDEUtils.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclMsBuild.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPreProcessorAlgorithmsTemplates.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPreProcessorArrayListsTemplates.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPreProcessorArraySetsTemplates.pas" Targets="all" Formname="" Condition=""/> @@ -46,6 +45,7 @@ <File Name="..\..\source\common\JclPreProcessorVectorsTemplates.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclUsesUtils.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\windows\JclHelpUtils.pas" Targets="Windows" Formname="" Condition=""/> + <File Name="..\..\source\windows\JclMsBuild.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\source\windows\MSHelpServices_TLB.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\..\help\Common.dtx" Targets="help" Formname="" Condition=""/> <File Name="..\..\..\help\JclDeveloperTools.dtx" Targets="help" Formname="" Condition=""/> Modified: trunk/jcl/source/common/JclDevToolsResources.pas =================================================================== --- trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/source/common/JclDevToolsResources.pas 2011-08-12 15:13:14 UTC (rev 3570) @@ -138,6 +138,19 @@ RsEMissingParenthesis = 'Invalid condition: missing parenthesis'; RsEEmptyIdentifier = 'Invalid condition: empty identifier'; RsEUnknownOperator = 'Invalid condition: unknown operator'; + RsEReservedProperty = 'Attempt to override or to delete a reserved MsBuild property'; + RsENoProjectElem = 'Project element expected, got "%s"'; + RsEUnknownSchema = 'Unknown schema "%s"'; + RsEUnknownProperty = 'Unknown property "%s"'; + RsEUnknownElement = 'Unknown element "%s"'; + RsEMultipleProjectExtensions = 'Multiple project extensions'; + RsEMultipleOtherwise = 'Multiple otherwise'; + RsEConditionNotUnique = 'Condition is not unique'; + RsEMissingItemInclude = 'Missing item include'; + RsEMissingTaskName = 'Missing task name'; + RsEMissingAssembly = 'Missing assembly'; + RsEMissingTaskParameter = 'Missing task parameter'; + RsEMissingOutputName = 'Missing output name'; //=== JclUsesUtils.pas ======================================================= resourcestring Deleted: trunk/jcl/source/common/JclMsBuild.pas =================================================================== --- trunk/jcl/source/common/JclMsBuild.pas 2011-08-12 15:11:05 UTC (rev 3569) +++ trunk/jcl/source/common/JclMsBuild.pas 2011-08-12 15:13:14 UTC (rev 3570) @@ -1,329 +0,0 @@ -{**************************************************************************************************} -{ } -{ Project JEDI Code Library (JCL) } -{ } -{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); } -{ you may not use this file except in compliance with the License. You may obtain a copy of the } -{ License at http://www.mozilla.org/MPL/ } -{ } -{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } -{ ANY KIND, either express or implied. See the License for the specific language governing rights } -{ and limitations under the License. } -{ } -{ The Original Code is JclMsBuild.pas. } -{ } -{ The Initial Developer of the Original Code is Florent Ouchet. } -{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All Rights Reserved. } -{ } -{ Contributor(s): } -{ } -{**************************************************************************************************} -{ } -{ Routines around MsBuild project files. } -{ } -{**************************************************************************************************} -{ } -{ Last modified: $Date:: $ } -{ Revision: $Rev:: $ } -{ Author: $Author:: $ } -{ } -{**************************************************************************************************} - -unit JclMsBuild; - -{$I jcl.inc} -{$I crossplatform.inc} - -interface - -uses - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - Classes, - JclBase, - JclSimpleXml; - -type - EJclMsBuildError = class(EJclError); - -// this function parses MsBuild condition as described at: -// http://msdn.microsoft.com/en-us/library/7szfhaft.aspx -function ParseCondition(const Condition: string; Defines: TStrings): Boolean; overload; -function ParseCondition(const Condition: string; var Position: Integer; Len: Integer; - Defines: TStrings): Boolean; overload; - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\source\common'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} - -implementation - -uses - SysUtils, - JclStrings, - JclDevToolsResources; - -function EvaluateString(const Condition: string; Defines: TStrings): string; -var - Start, Position, Len: Integer; - PropertyName: string; -begin - Result := Condition; - if Result <> '' then - begin - // evaluate variables - repeat - // start with the last match in order to convert $(some$(other)) - Start := StrLastPos('$(', Result); - if Start > 0 then - begin - Len := Length(Result); - Position := Start; - while (Position <= Len) and (Result[Position] <> ')') do - Inc(Position); - if Position > Len then - raise EJclMsBuildError.CreateRes(@RsEEndOfString); - PropertyName := Copy(Result, Start + 2, Position - Start - 2); - StrReplace(Result, - Copy(Result, Start, Position - Start + 1), // $(some) - Defines.Values[PropertyName], // some - [rfReplaceAll]); - end; - until Start = 0; - // convert hexa to decimal - if Copy(Result, 1, 2) = '0x' then - Result := IntToStr(StrToInt('$' + Copy(Result, 3, Length(Result) - 2))); - end; -end; - -function ParseString(const Condition: string; var Position: Integer; Len: Integer; - Defines: TStrings): string; -var - StartPos, EndPos: Integer; - HasQuote: Boolean; - FileOrDirectory: string; -begin - // skip heading spaces - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); - StartPos := Position; - HasQuote := Condition[Position] = NativeSingleQuote; - if HasQuote then - begin - // skip heading quote - Inc(StartPos); - Inc(Position); - // quoted string - while (Position <= Len) and (Condition[Position] <> NativeSingleQuote) do - Inc(Position); - if Position > Len then - raise EJclMsBuildError.CreateRes(@RsEEndOfString); - EndPos := Position; - // skip closing quote - Inc(Position); - end - else - begin - // alphanumeric strings do not need to be quoted - while (Position <= Len) and CharIsValidIdentifierLetter(Condition[Position]) do - Inc(Position); - EndPos := Position; - end; - Result := Copy(Condition, StartPos, EndPos - StartPos); - - // evaluate builtin operators and functions - if (Result = '') and (Condition[StartPos] = '!') and not HasQuote then - begin - Inc(Position); - Result := BoolToStr(not StrToBool(ParseString(Condition, Position, Len, Defines)), True); - end - else - if (CompareText(Result, 'Exists') = 0) and not HasQuote then - begin - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); - // skip opening parenthesis - if Condition[Position] <> '(' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); - Inc(Position); - FileOrDirectory := ParseString(Condition, Position, Len, Defines); - Result := BoolToStr(FileExists(FileOrDirectory) or DirectoryExists(FileOrDirectory), True); - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); - // skip closing parenthesis - if Condition[Position] <> ')' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); - Inc(Position); - end - else - if (CompareText(Result, 'HasTrailingSlash') = 0) and not HasQuote then - begin - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); - // skip opening parenthesis - if Condition[Position] <> '(' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); - Inc(Position); - FileOrDirectory := ParseString(Condition, Position, Len, Defines); - Result := BoolToStr((FileOrDirectory <> '') and (FileOrDirectory[Length(FileOrDirectory)] = PathDelim), True); - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); - // skip closing parenthesis - if Condition[Position] <> ')' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); - Inc(Position); - end - else - Result := EvaluateString(Result, Defines); - // skip tailing spaces - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); -end; - -function ParseCondition(const Condition: string; var Position: Integer; Len: Integer; - Defines: TStrings): Boolean; -type - TOperator = (opUnknown, opEqual, opNotEqual, opLess, opLessOrEqual, opGreater, OpGreaterOrEqual, opAnd, opOr); -var - LeftOperand, RightOperand: string; - MiddleOperator: TOperator; -begin - Result := True; - if Condition <> '' then - begin - // read first word - LeftOperand := ParseString(Condition, Position, Len, Defines); - if (LeftOperand = '') and (Position <= Len) and (Condition[Position] = '(') then - begin - // skip opening parenthesis - Inc(Position); - LeftOperand := BoolToStr(ParseCondition(Condition, Position, Len, Defines), True); - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); - if Condition[Position] <> ')' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); - // skip closing parenthesis - Inc(Position); - end; - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); - // read second word if any - if Position <= Len then - begin - // read infix operator - MiddleOperator := opUnknown; - if (Position <= (Len + 2)) and (MiddleOperator = opUnknown) then - begin - if ((Condition[Position] = 'A') or (Condition[Position] = 'a')) and - ((Condition[Position + 1] = 'N') or (Condition[Position + 1] = 'n')) and - ((Condition[Position + 2] = 'D') or (Condition[Position + 2] = 'd')) then - MiddleOperator := opAnd; - if MiddleOperator <> opUnknown then - Inc(Position, 3); - end; - if (Position <= (Len + 1)) and (MiddleOperator = opUnknown) then - begin - if (Condition[Position] = '=') and (Condition[Position + 1] = '=') then - MiddleOperator := opEqual - else - if (Condition[Position] = '!') and (Condition[Position + 1] = '=') then - MiddleOperator := opNotEqual - else - if (Condition[Position] = '<') and (Condition[Position + 1] = '=') then - MiddleOperator := opLessOrEqual - else - if (Condition[Position] = '>') and (Condition[Position + 1] = '=') then - MiddleOperator := OpGreaterOrEqual - else - if ((Condition[Position] = 'O') or (Condition[Position] = 'o')) and - ((Condition[Position + 1] = 'R') or (Condition[Position + 1] = 'r')) then - MiddleOperator := opOr; - if MiddleOperator <> opUnknown then - Inc(Position, 2); - end; - if (Position <= Len) and (MiddleOperator = opUnknown) then - begin - if Condition[Position] = '<' then - MiddleOperator := opLess - else - if Condition[Position] = '>' then - MiddleOperator := opGreater; - if MiddleOperator <> opUnknown then - Inc(Position); - end; - // read right operand - RightOperand := ParseString(Condition, Position, Len, Defines); - if (RightOperand = '') and (Position <= Len) and (Condition[Position] = '(') then - begin - // skip opening parenthesis - Inc(Position); - RightOperand := BoolToStr(ParseCondition(Condition, Position, Len, Defines), True); - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); - if Condition[Position] <> ')' then - raise EJclMsBuildError.CreateRes(@RsEMissingParenthesis); - // skip closing parenthesis - Inc(Position); - end; - while (Position <= Len) and CharIsWhiteSpace(Condition[Position]) do - Inc(Position); - - if RightOperand = '' then - raise EJclMsBuildError.CreateRes(@RsEEmptyIdentifier); - case MiddleOperator of - opUnknown: - raise EJclMsBuildError.CreateRes(@RsEUnknownOperator); - opEqual: - Result := LeftOperand = RightOperand; - opNotEqual: - Result := LeftOperand <> RightOperand; - opLess: - Result := StrToInt(LeftOperand) < StrToInt(RightOperand); - opLessOrEqual: - Result := StrToInt(LeftOperand) <= StrToInt(RightOperand); - opGreater: - Result := StrToInt(LeftOperand) > StrToInt(RightOperand); - OpGreaterOrEqual: - Result := StrToInt(LeftOperand) >= StrToInt(RightOperand); - opAnd: - Result := StrToBool(LeftOperand) and StrToBool(RightOperand); - opOr: - Result := StrToBool(LeftOperand) or StrToBool(RightOperand); - end; - end - else - if LeftOperand = '' then - raise EJclMsBuildError.CreateRes(@RsEEmptyIdentifier) - else - // no second word - Result := StrToBool(LeftOperand) - end; -end; - -function ParseCondition(const Condition: string; Defines: TStrings): Boolean; -var - Position, Len: Integer; -begin - Len := Length(Condition); - Position := 1; - Result := ParseCondition(Condition, Position, Len, Defines); -end; - -{$IFDEF UNITVERSIONING} -initialization - RegisterUnitVersion(HInstance, UnitVersioning); - -finalization - UnregisterUnitVersion(HInstance); -{$ENDIF UNITVERSIONING} - -end. Copied: trunk/jcl/source/windows/JclMsBuild.pas (from rev 3568, trunk/jcl/source/common/JclMsBuild.pas) =================================================================== --- trunk/jcl/source/windows/JclMsBuild.pas (rev 0) +++ trunk/jcl/source/windows/JclMsBuild.pas 2011-08-12 15:13:14 UTC (rev 3570) @@ -0,0 +1,329 @@ +{**************************************************************************************************} +{ } +{ Project JEDI Code Library (JCL) } +{ } +{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); } +{ you may not use this file except in compliance with the License. You may obtain a copy of the } +{ License at http://www.mozilla.org/MPL/ } +{ } +{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } +{ ANY KIND, either express or implied. See the License for the specific language governing rights } +{ and limitations under the License. } +{ } +{ The Original Code is JclMsBuild.pas. } +{ } +{ The Initial Developer of the Original Code is Florent Ouchet. } +{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All Rights Reserved. } +{ } +{ Contributor(s): } +{ } +{**************************************************************************************************} +{ } +{ Routines around MsBuild project files. } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclMsBuild; + +{$I jcl.inc} +{$I windowsonly.inc} + +interface + +uses + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + Classes, + JclBase, + JclSimpleXml; + +type + EJclMsBuildError = class(EJclError); + +// this function parses MsBuild condition as described at: +// http://msdn.microsoft.com/en-us/library/7szfhaft.aspx +function ParseCondition(const Condition: string; Defines: TStrings): Boolean; overload; +function ParseCondition(const Condition: string; var Position: Integer; Len: Integer; + Defines: TStrings): Boolean; overload; + +{$IFDEF UNITVERSIONING} +const + UnitVer... [truncated message content] |
From: <ou...@us...> - 2011-08-12 15:11:11
|
Revision: 3569 http://jcl.svn.sourceforge.net/jcl/?rev=3569&view=rev Author: outchy Date: 2011-08-12 15:11:05 +0000 (Fri, 12 Aug 2011) Log Message: ----------- remove GUI metadata that should not be in the repository. Modified Paths: -------------- trunk/jcl/devtools/pgEdit.xml Modified: trunk/jcl/devtools/pgEdit.xml =================================================================== --- trunk/jcl/devtools/pgEdit.xml 2011-08-11 12:33:08 UTC (rev 3568) +++ trunk/jcl/devtools/pgEdit.xml 2011-08-12 15:11:05 UTC (rev 3569) @@ -1,22 +1,7 @@ <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <Configuration> <!-- These are the values stored by jaxStore --> - <pgEdit> - <FormVersion>0</FormVersion> - <ShowCmd>1</ShowCmd> - <Flags>0</Flags> - <PixelsPerInch>96</PixelsPerInch> - <MinMaxPos_1680x1050_>-1,-1,-1,-1</MinMaxPos_1680x1050_> - <MinMaxPos>-1,-1,-1,-1</MinMaxPos> - <NormPos_1680x1050_>340,187,1338,906</NormPos_1680x1050_> - <NormPos>340,187,1338,906</NormPos> - <pnlList_Width>211</pnlList_Width> - <jsgDependencies_Height>129</jsgDependencies_Height> - <pnlEdit_Width>769</pnlEdit_Width> - <jsgFiles_Height>267</jsgFiles_Height> - <odlAddFiles_InitialDir>..\..\source\windows</odlAddFiles_InitialDir> - <cmbModel_ItemIndex>0</cmbModel_ItemIndex> - </pgEdit> + <pgEdit/> <!-- The nodes below are read by the generation process. Packages are generated according to a model. The models are defined This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-08-11 12:33:17
|
Revision: 3568 http://jcl.svn.sourceforge.net/jcl/?rev=3568&view=rev Author: outchy Date: 2011-08-11 12:33:08 +0000 (Thu, 11 Aug 2011) Log Message: ----------- minor optimizations. Modified Paths: -------------- trunk/jcl/source/common/JclStreams.pas Modified: trunk/jcl/source/common/JclStreams.pas =================================================================== --- trunk/jcl/source/common/JclStreams.pas 2011-08-10 15:44:44 UTC (rev 3567) +++ trunk/jcl/source/common/JclStreams.pas 2011-08-11 12:33:08 UTC (rev 3568) @@ -2436,7 +2436,7 @@ Inc(FStrBufferPosition, FStrBufferCurrentSize); FStrBufferStart := FStrBufferNext; FStream.Seek(FStrBufferStart, soBeginning); - FStrBufferCurrentSize := InternalGetNextBuffer(FStream, FStrBuffer, 0, Length(FStrBuffer)); + FStrBufferCurrentSize := InternalGetNextBuffer(FStream, FStrBuffer, 0, FBufferSize); FStrBufferNext := FStream.Seek(0, soCurrent); // reset the peek buffer FStrPeekBufferPosition := FStrBufferPosition + FStrBufferCurrentSize; @@ -2462,7 +2462,7 @@ FStrPeekBufferStart := FStrPeekBufferNext; Inc(FStrPeekBufferPosition, FStrPeekBufferCurrentSize); FStream.Seek(FStrPeekBufferStart, soBeginning); - FStrPeekBufferCurrentSize := InternalGetNextBuffer(FStream, FStrPeekBuffer, 0, Length(FStrPeekBuffer)); + FStrPeekBufferCurrentSize := InternalGetNextBuffer(FStream, FStrPeekBuffer, 0, FBufferSize); FStrPeekBufferNext := FStream.Seek(0, soCurrent); Result := (FStrPeekPosition >= FStrPeekBufferPosition) and (FStrPeekPosition < (FStrPeekBufferPosition + FStrPeekBufferCurrentSize)); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |