[darwinbuild-changes] [846] trunk

source_changes at macosforge.org source_changes at macosforge.org
Wed Jun 23 09:36:33 PDT 2010


Revision: 846
          http://trac.macosforge.org/projects/darwinbuild/changeset/846
Author:   wsiegrist at apple.com
Date:     2010-06-23 09:36:33 -0700 (Wed, 23 Jun 2010)
Log Message:
-----------
New plugin for darwinxref: query. Allows for listing projects with a property of a certain value.

Modified Paths:
--------------
    trunk/darwinbuild.xcodeproj/project.pbxproj

Added Paths:
-----------
    trunk/darwinxref/plugins/query.c

Modified: trunk/darwinbuild.xcodeproj/project.pbxproj
===================================================================
--- trunk/darwinbuild.xcodeproj/project.pbxproj	2010-06-17 20:11:29 UTC (rev 845)
+++ trunk/darwinbuild.xcodeproj/project.pbxproj	2010-06-23 16:36:33 UTC (rev 846)
@@ -53,6 +53,7 @@
 			buildPhases = (
 			);
 			dependencies = (
+				72D05CBA11D2688D00B33EDD /* PBXTargetDependency */,
 				7227AB48109897E000BE33D7 /* PBXTargetDependency */,
 				725740CE1097B0AD008AD4D7 /* PBXTargetDependency */,
 				725740CC1097B0AD008AD4D7 /* PBXTargetDependency */,
@@ -163,6 +164,7 @@
 		72C86C9F109745BC00C66E90 /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 72C86BE610965E4F00C66E90 /* Utils.cpp */; };
 		72C86CE210974CC800C66E90 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72C86CE110974CC700C66E90 /* libcrypto.dylib */; };
 		72C86CE410974CC800C66E90 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72C86CE310974CC800C66E90 /* libsqlite3.dylib */; };
+		72D05CB811D2680500B33EDD /* query.c in Sources */ = {isa = PBXBuildFile; fileRef = 72D05CA911D2678F00B33EDD /* query.c */; };
 		DF12E2821119E2B0007587C1 /* DB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF12E2811119E2B0007587C1 /* DB.cpp */; };
 		DFC9772D11138F9400CAE084 /* Column.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFC9772711138F9400CAE084 /* Column.cpp */; };
 		DFC9772E11138F9400CAE084 /* Database.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFC9772911138F9400CAE084 /* Database.cpp */; };
@@ -584,6 +586,20 @@
 			remoteGlobalIDString = 72C86C51109660CA00C66E90;
 			remoteInfo = darwintrace;
 		};
+		72D05CAF11D267C400B33EDD /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 726DD14910965C5700D5AEAB /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 7257499F1097697300B13BC3;
+			remoteInfo = darwinxref;
+		};
+		72D05CB911D2688D00B33EDD /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 726DD14910965C5700D5AEAB /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 72D05CAD11D267C400B33EDD /* query */;
+			remoteInfo = query;
+		};
 		DFCB82D9109A2F9A00D2DB2F /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 726DD14910965C5700D5AEAB /* Project object */;
@@ -757,6 +773,8 @@
 		72C86CDD10974C3A00C66E90 /* libredo_prebinding.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libredo_prebinding.a; path = /usr/local/lib/libredo_prebinding.a; sourceTree = "<absolute>"; };
 		72C86CE110974CC700C66E90 /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcrypto.dylib; path = /usr/lib/libcrypto.dylib; sourceTree = "<absolute>"; };
 		72C86CE310974CC800C66E90 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = /usr/lib/libsqlite3.dylib; sourceTree = "<absolute>"; };
+		72D05CA911D2678F00B33EDD /* query.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = query.c; sourceTree = "<group>"; };
+		72D05CB711D267C400B33EDD /* register copy.so */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.objfile"; includeInIndex = 0; path = "register copy.so"; sourceTree = BUILT_PRODUCTS_DIR; };
 		DF12E2801119E2B0007587C1 /* DB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DB.h; path = darwinup/DB.h; sourceTree = "<group>"; };
 		DF12E2811119E2B0007587C1 /* DB.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DB.cpp; path = darwinup/DB.cpp; sourceTree = "<group>"; };
 		DFC9772711138F9400CAE084 /* Column.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Column.cpp; path = darwinup/Column.cpp; sourceTree = "<group>"; };
@@ -965,6 +983,13 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		72D05CB211D267C400B33EDD /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
@@ -1095,6 +1120,7 @@
 				72C86C0910965EEA00C66E90 /* original.c */,
 				72C86C0A10965EEA00C66E90 /* patchfiles.c */,
 				72C86C0B10965EEA00C66E90 /* plist_sites.c */,
+				72D05CA911D2678F00B33EDD /* query.c */,
 				72C86C0C10965EEA00C66E90 /* register.c */,
 				72C86C0D10965EEA00C66E90 /* resolveDeps.c */,
 				72C86C0E10965EEA00C66E90 /* source_sites.c */,
@@ -1141,6 +1167,7 @@
 				7227AC1C1098D8DB00BE33D7 /* thinPackages */,
 				7227AC251098DB9200BE33D7 /* installXcode */,
 				7227AC2E1098DBDF00BE33D7 /* installXcode32 */,
+				72D05CB711D267C400B33EDD /* register copy.so */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -1722,6 +1749,23 @@
 			productReference = 72C86C52109660CA00C66E90 /* darwintrace.dylib */;
 			productType = "com.apple.product-type.library.dynamic";
 		};
+		72D05CAD11D267C400B33EDD /* query */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 72D05CB311D267C400B33EDD /* Build configuration list for PBXNativeTarget "query" */;
+			buildPhases = (
+				72D05CB011D267C400B33EDD /* Sources */,
+				72D05CB211D267C400B33EDD /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				72D05CAE11D267C400B33EDD /* PBXTargetDependency */,
+			);
+			name = query;
+			productName = configuration;
+			productReference = 72D05CB711D267C400B33EDD /* register copy.so */;
+			productType = "com.apple.product-type.objfile";
+		};
 /* End PBXNativeTarget section */
 
 /* Begin PBXProject section */
@@ -1763,6 +1807,7 @@
 				725740471097ABDC008AD4D7 /* original */,
 				7257404F1097AEC1008AD4D7 /* patchfiles */,
 				725740571097AECC008AD4D7 /* plist_sites */,
+				72D05CAD11D267C400B33EDD /* query */,
 				7257405F1097AEDE008AD4D7 /* register */,
 				725740671097AEF0008AD4D7 /* resolveDeps */,
 				7257406F1097AEFE008AD4D7 /* source_sites */,
@@ -2208,6 +2253,14 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		72D05CB011D267C400B33EDD /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				72D05CB811D2680500B33EDD /* query.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXTargetDependency section */
@@ -2506,6 +2559,16 @@
 			target = 72C86C51109660CA00C66E90 /* darwintrace */;
 			targetProxy = 72C86C601096617500C66E90 /* PBXContainerItemProxy */;
 		};
+		72D05CAE11D267C400B33EDD /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 7257499F1097697300B13BC3 /* darwinxref */;
+			targetProxy = 72D05CAF11D267C400B33EDD /* PBXContainerItemProxy */;
+		};
+		72D05CBA11D2688D00B33EDD /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 72D05CAD11D267C400B33EDD /* query */;
+			targetProxy = 72D05CB911D2688D00B33EDD /* PBXContainerItemProxy */;
+		};
 		DFCB82DA109A2F9A00D2DB2F /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = 7227AC7E1098EF6400BE33D7 /* libredo_prebinding.a */;
@@ -3518,6 +3581,27 @@
 			};
 			name = Release;
 		};
+		72D05CB411D267C400B33EDD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 72574B3E10979D6000B13BC3 /* c_plugins.xcconfig */;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		72D05CB511D267C400B33EDD /* Public */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 72574B3E10979D6000B13BC3 /* c_plugins.xcconfig */;
+			buildSettings = {
+			};
+			name = Public;
+		};
+		72D05CB611D267C400B33EDD /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 72574B3E10979D6000B13BC3 /* c_plugins.xcconfig */;
+			buildSettings = {
+			};
+			name = Release;
+		};
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
@@ -3911,6 +3995,16 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Public;
 		};
+		72D05CB311D267C400B33EDD /* Build configuration list for PBXNativeTarget "query" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				72D05CB411D267C400B33EDD /* Debug */,
+				72D05CB511D267C400B33EDD /* Public */,
+				72D05CB611D267C400B33EDD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Public;
+		};
 /* End XCConfigurationList section */
 	};
 	rootObject = 726DD14910965C5700D5AEAB /* Project object */;

Added: trunk/darwinxref/plugins/query.c
===================================================================
--- trunk/darwinxref/plugins/query.c	                        (rev 0)
+++ trunk/darwinxref/plugins/query.c	2010-06-23 16:36:33 UTC (rev 846)
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2010 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_BSD_LICENSE_HEADER_START@
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer. 
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution. 
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission. 
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ * @APPLE_BSD_LICENSE_HEADER_END@
+ */
+ 
+#include "DBPlugin.h"
+
+int run(CFArrayRef argv) {
+  
+  // check usage
+  CFIndex count = CFArrayGetCount(argv);
+  if (count != 3)  return -1;
+
+  // get arguments
+  CFStringRef property = CFArrayGetValueAtIndex(argv, 0);
+  CFStringRef comparison = CFArrayGetValueAtIndex(argv, 1);
+  CFStringRef desired_value = CFArrayGetValueAtIndex(argv, 2);
+
+  // get current build and project list
+  CFStringRef build = DBGetCurrentBuild();
+  CFArrayRef projects = DBCopyProjectNames(build);
+  CFIndex projcount = CFArrayGetCount(projects);
+
+  // test each project for matching query
+  for (int i=0; i < projcount; i++) {
+    CFStringRef project = CFArrayGetValueAtIndex(projects, i);
+    CFStringRef current_value = DBCopyPropString(build, project, property);
+
+    if (current_value && (
+	((CFStringCompare(comparison, CFSTR("="), 0) == 0) &&
+	 (CFStringCompare(desired_value, current_value, kCFCompareCaseInsensitive) == kCFCompareEqualTo))
+	||
+	((CFStringCompare(comparison, CFSTR("!="), 0) == 0) &&
+	 (CFStringCompare(desired_value, current_value, kCFCompareCaseInsensitive) != kCFCompareEqualTo))
+	||
+	((CFStringCompare(comparison, CFSTR(">"), 0) == 0) &&
+	 (CFStringCompare(desired_value, current_value, kCFCompareCaseInsensitive) == kCFCompareGreaterThan))
+	||
+	((CFStringCompare(comparison, CFSTR(">="), 0) == 0) &&
+	 (CFStringCompare(desired_value, current_value, kCFCompareCaseInsensitive) != kCFCompareLessThan))
+	||
+	((CFStringCompare(comparison, CFSTR("<="), 0) == 0) &&
+	 (CFStringCompare(desired_value, current_value, kCFCompareCaseInsensitive) != kCFCompareGreaterThan))
+	||
+	((CFStringCompare(comparison, CFSTR("<"), 0) == 0) &&
+	 (CFStringCompare(desired_value, current_value, kCFCompareCaseInsensitive) == kCFCompareLessThan))
+			  )) {
+      cfprintf(stdout, "%@\n", project);
+    }
+
+    if (current_value) CFRelease(current_value);
+  }
+
+  if (projects) CFRelease(projects);
+  return 0;
+}
+
+static CFStringRef usage() {
+	return CFRetain(CFSTR("<property> <comparison> <value>"
+			      "\n\t\t... comparison is one of =, !=, >, <, <=, >="));
+}
+
+int initialize(int version) {
+	DBPluginSetType(kDBPluginBasicType);
+	DBPluginSetName(CFSTR("query"));
+	DBPluginSetRunFunc(&run);
+	DBPluginSetUsageFunc(&usage);
+	return 0;
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20100623/c1735007/attachment-0001.html>


More information about the darwinbuild-changes mailing list