aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README65
-rw-r--r--xcode/Config/FrameworkTarget.xcconfig4
-rw-r--r--xcode/Config/StaticLibraryTarget.xcconfig3
-rw-r--r--xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj73
-rw-r--r--xcode/gtest.xcodeproj/project.pbxproj13
5 files changed, 70 insertions, 88 deletions
diff --git a/README b/README
index cb8d4de8..d7464015 100644
--- a/README
+++ b/README
@@ -202,9 +202,9 @@ defaults to xcode/build). Alternatively, at the command line, enter:
xcodebuild
-This will build the "Release" configuration of the gtest.framework, but you can
-select the "Debug" configuration with a command line option. See the
-"xcodebuild" man page for more information.
+This will build the "Release" configuration of gtest.framework in your
+default build location. See the "xcodebuild" man page for more information about
+building different configurations and building in different locations.
To test the gtest.framework in Xcode, change the active target to "Check" and
then build. This target builds all of the tests and then runs them. Don't worry
@@ -212,21 +212,39 @@ if you see some errors. Xcode reports all test failures (even the intentional
ones) as errors. However, you should see a "Build succeeded" message at the end
of the build log. To run all of the tests from the command line, enter:
- xcodebuid -target Check
+ xcodebuild -target Check
+
+Installation with xcodebuild requires specifying an installation desitination
+directory, known as the DSTROOT. Three items will be installed when using
+xcodebuild:
+
+ $DSTROOT/Library/Frameworks/gtest.framework
+ $DSTROOT/usr/local/lib/libgtest.a
+ $DSTROOT/usr/local/lib/libgtest_main.a
+
+You specify the installation directory on the command line with the other
+xcodebuild options. Here's how you would install in a user-visible location:
+
+ xcodebuild install DSTROOT=~
+
+To perform a system-wide inistall, escalate to an administrator and specify
+the file system root as the DSTROOT:
+
+ sudo xcodebuild install DSTROOT=/
+
+To uninstall gtest.framework via the command line, you need to delete the three
+items listed above. Remember to escalate to an administrator if deleting these
+from the system-wide location using the commands listed below:
+
+ sudo rm -r /Library/Frameworks/gtest.framework
+ sudo rm /usr/local/lib/libgtest.a
+ sudo rm /usr/local/lib/libgtest_main.a
It is also possible to build and execute individual tests within Xcode. Each
test has its own Xcode "Target" and Xcode "Executable". To build any of the
tests, change the active target and the active executable to the test of
interest and then build and run.
-NOTE: Several tests use a Python script to run the test executable. These can be
-run from Xcode by creating a "Custom Executable". For example, to run the Python
-script which executes the gtest_color_test, select the Project->New Custom
-Executable... menu item. When prompted, set the "Executable Name" to something
-like "run_gtest_color_test" and set the "Executable Path" to the path of the
-gtest_color_test.py script. Finally, choose "Run" from the Run menu and check
-the Console for the results.
-
Individual tests can be built from the command line using:
xcodebuild -target <test_name>
@@ -235,21 +253,14 @@ These tests can be executed from the command line by moving to the build
directory and then (in bash)
export DYLD_FRAMEWORK_PATH=`pwd`
- ./<test_name> # (if it is not a python test, e.g. ./gtest_unittest)
- # OR
- ./<test_name>.py # (if it is a python test, e.g. ./gtest_color_test.py)
-
-To use the gtest.framework for your own tests, first, add the framework to Xcode
-project. Next, create a new executable target and add the framework to the
-"Link Binary With Libraries" build phase. Select "Edit Active Executable" from
-the "Project" menu. In the "Arguments" tab, add
-
- "DYLD_FRAMEWORK_PATH" : "/real/framework/path"
-
-in the "Variables to be set in the environment:" list, where you replace
-"/real/framework/path" with the actual location of the gtest.framework. Now
-when you run your executable, it will load the framework and your test will
-run as expected.
+ ./<test_name> # (e.g. ./gtest_unittest)
+
+To use gtest.framework for your own tests, first, install the framework using
+the steps described above. Then add it to your Xcode project by selecting
+Project->Add to Project... from the main menu. Next, add libgtest_main.a from
+gtest.framework/Resources directory using the same menu command. Finally,
+create a new executable target and add gtest.framework and libgtest_main.a to
+the "Link Binary With Libraries" build phase.
### Using GNU Make ###
The make/ directory contains a Makefile that you can use to build
diff --git a/xcode/Config/FrameworkTarget.xcconfig b/xcode/Config/FrameworkTarget.xcconfig
index 3deadcdb..357b1c8f 100644
--- a/xcode/Config/FrameworkTarget.xcconfig
+++ b/xcode/Config/FrameworkTarget.xcconfig
@@ -13,5 +13,5 @@ GCC_DYNAMIC_NO_PIC = NO
// Dynamic libs should not have their external symbols stripped.
STRIP_STYLE = non-global
-// Installation Directory
-INSTALL_PATH = @loader_path/../Frameworks
+// Let the user install by specifying the $DSTROOT with xcodebuild
+SKIP_INSTALL = NO
diff --git a/xcode/Config/StaticLibraryTarget.xcconfig b/xcode/Config/StaticLibraryTarget.xcconfig
index 67f840ad..3922fa51 100644
--- a/xcode/Config/StaticLibraryTarget.xcconfig
+++ b/xcode/Config/StaticLibraryTarget.xcconfig
@@ -13,3 +13,6 @@ GCC_DYNAMIC_NO_PIC = NO
// Static libs should not have their internal globals or external symbols
// stripped.
STRIP_STYLE = debugging
+
+// Let the user install by specifying the $DSTROOT with xcodebuild
+SKIP_INSTALL = NO
diff --git a/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj b/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj
index a9877b31..82449104 100644
--- a/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj
+++ b/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 42;
objects = {
/* Begin PBXBuildFile section */
@@ -11,10 +11,8 @@
3B7EB1260E5AEE3500C7F239 /* widget.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B7EB1240E5AEE3500C7F239 /* widget.h */; settings = {ATTRIBUTES = (Public, ); }; };
3B7EB1280E5AEE4600C7F239 /* widget_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3B7EB1270E5AEE4600C7F239 /* widget_test.cc */; };
3B7EB1480E5AF3B400C7F239 /* Widget.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D07F2C80486CC7A007CD1D0 /* Widget.framework */; };
- 3B7F0C8D0E567CC5009CA236 /* gtest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BA867DC0E561B7C00326077 /* gtest.framework */; };
- 40C849E8101A426E0083642A /* libgtest_main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40C849E7101A426E0083642A /* libgtest_main.a */; };
- 40C849EF101A42C80083642A /* gtest.framework in Copy Test Framework */ = {isa = PBXBuildFile; fileRef = 3BA867DC0E561B7C00326077 /* gtest.framework */; };
- 40C849F2101A42CC0083642A /* libgtest_main.a in Copy Test Framework */ = {isa = PBXBuildFile; fileRef = 40C849E7101A426E0083642A /* libgtest_main.a */; };
+ 408BEC281046D72200DEF522 /* gtest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 408BEC271046D72200DEF522 /* gtest.framework */; };
+ 408BEC431046D7B300DEF522 /* libgtest_main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 408BEC421046D7B300DEF522 /* libgtest_main.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -27,28 +25,13 @@
};
/* End PBXContainerItemProxy section */
-/* Begin PBXCopyFilesBuildPhase section */
- 40C849F5101A42EA0083642A /* Copy Test Framework */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 16;
- files = (
- 40C849F2101A42CC0083642A /* libgtest_main.a in Copy Test Framework */,
- 40C849EF101A42C80083642A /* gtest.framework in Copy Test Framework */,
- );
- name = "Copy Test Framework";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
/* Begin PBXFileReference section */
3B07BDEA0E3F3F9E00647869 /* WidgetFrameworkTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = WidgetFrameworkTest; sourceTree = BUILT_PRODUCTS_DIR; };
3B7EB1230E5AEE3500C7F239 /* widget.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = widget.cc; sourceTree = "<group>"; };
3B7EB1240E5AEE3500C7F239 /* widget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = widget.h; sourceTree = "<group>"; };
3B7EB1270E5AEE4600C7F239 /* widget_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = widget_test.cc; sourceTree = "<group>"; };
- 3BA867DC0E561B7C00326077 /* gtest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = gtest.framework; path = ../../build/Debug/gtest.framework; sourceTree = "<group>"; };
- 40C849E7101A426E0083642A /* libgtest_main.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgtest_main.a; path = ../../build/Debug/gtest.framework/Versions/A/Resources/libgtest_main.a; sourceTree = SOURCE_ROOT; };
+ 408BEC271046D72200DEF522 /* gtest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = gtest.framework; path = /Library/Frameworks/gtest.framework; sourceTree = "<absolute>"; };
+ 408BEC421046D7B300DEF522 /* libgtest_main.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgtest_main.a; path = /Library/Frameworks/gtest.framework/Versions/A/Resources/libgtest_main.a; sourceTree = "<absolute>"; };
8D07F2C70486CC7A007CD1D0 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D07F2C80486CC7A007CD1D0 /* Widget.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Widget.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
@@ -59,8 +42,8 @@
buildActionMask = 2147483647;
files = (
3B7EB1480E5AF3B400C7F239 /* Widget.framework in Frameworks */,
- 3B7F0C8D0E567CC5009CA236 /* gtest.framework in Frameworks */,
- 40C849E8101A426E0083642A /* libgtest_main.a in Frameworks */,
+ 408BEC281046D72200DEF522 /* gtest.framework in Frameworks */,
+ 408BEC431046D7B300DEF522 /* libgtest_main.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -98,8 +81,8 @@
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
isa = PBXGroup;
children = (
- 3BA867DC0E561B7C00326077 /* gtest.framework */,
- 40C849E7101A426E0083642A /* libgtest_main.a */,
+ 408BEC421046D7B300DEF522 /* libgtest_main.a */,
+ 408BEC271046D72200DEF522 /* gtest.framework */,
);
name = "External Frameworks and Libraries";
sourceTree = "<group>";
@@ -149,7 +132,6 @@
buildPhases = (
3B07BDE70E3F3F9E00647869 /* Sources */,
3B07BDE80E3F3F9E00647869 /* Frameworks */,
- 40C849F5101A42EA0083642A /* Copy Test Framework */,
);
buildRules = (
);
@@ -187,7 +169,7 @@
0867D690FE84028FC02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 4FADC24608B4156D00ABE55E /* Build configuration list for PBXProject "WidgetFramework" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 2.4";
hasScannedForEncodings = 1;
mainGroup = 0867D691FE84028FC02AAC07 /* gTestExample */;
productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
@@ -251,16 +233,6 @@
3B07BDEC0E3F3F9F00647869 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/externals/googletest/xcode/build/Debug\"",
- "\"$(SRCROOT)/../../build/Debug\"",
- );
- INSTALL_PATH = /usr/local/bin;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/../../build/Debug/gtest.framework/Versions/A/Resources\"",
- );
PRODUCT_NAME = WidgetFrameworkTest;
};
name = Debug;
@@ -268,16 +240,6 @@
3B07BDED0E3F3F9F00647869 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/externals/googletest/xcode/build/Debug\"",
- "\"$(SRCROOT)/../../build/Debug\"",
- );
- INSTALL_PATH = /usr/local/bin;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/../../build/Debug/gtest.framework/Versions/A/Resources\"",
- );
PRODUCT_NAME = WidgetFrameworkTest;
};
name = Release;
@@ -290,10 +252,7 @@
FRAMEWORK_VERSION = A;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "@loader_path/../Frameworks";
- LIBRARY_STYLE = DYNAMIC;
- MACH_O_TYPE = mh_dylib;
PRODUCT_NAME = Widget;
- WRAPPER_EXTENSION = framework;
};
name = Debug;
};
@@ -305,27 +264,23 @@
FRAMEWORK_VERSION = A;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "@loader_path/../Frameworks";
- LIBRARY_STYLE = DYNAMIC;
- MACH_O_TYPE = mh_dylib;
PRODUCT_NAME = Widget;
- WRAPPER_EXTENSION = framework;
};
name = Release;
};
4FADC24708B4156D00ABE55E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = macosx10.5;
+ GCC_VERSION = 4.0;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Debug;
};
4FADC24808B4156D00ABE55E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- SDKROOT = macosx10.5;
+ GCC_VERSION = 4.0;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Release;
};
diff --git a/xcode/gtest.xcodeproj/project.pbxproj b/xcode/gtest.xcodeproj/project.pbxproj
index d3eea55e..4234e728 100644
--- a/xcode/gtest.xcodeproj/project.pbxproj
+++ b/xcode/gtest.xcodeproj/project.pbxproj
@@ -95,6 +95,13 @@
remoteGlobalIDString = 4089A0120FFACEFC000B29AE;
remoteInfo = sample1_unittest;
};
+ 408BEC0F1046CFE900DEF522 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 40C848F9101A209C0083642A;
+ remoteInfo = "gtest-static";
+ };
40C44AE50E379922008FCC51 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
@@ -555,6 +562,7 @@
);
dependencies = (
40C44AE60E379922008FCC51 /* PBXTargetDependency */,
+ 408BEC101046CFE900DEF522 /* PBXTargetDependency */,
40C8499C101A36DC0083642A /* PBXTargetDependency */,
);
name = "gtest-framework";
@@ -716,6 +724,11 @@
target = 4089A0120FFACEFC000B29AE /* sample1_unittest-framework */;
targetProxy = 4089A0970FFAD34A000B29AE /* PBXContainerItemProxy */;
};
+ 408BEC101046CFE900DEF522 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 40C848F9101A209C0083642A /* gtest-static */;
+ targetProxy = 408BEC0F1046CFE900DEF522 /* PBXContainerItemProxy */;
+ };
40C44AE60E379922008FCC51 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 40C44ADC0E3798F4008FCC51 /* Version Info */;