From 95419e935cd57f0737ea2b30bb5793c5940a7abc Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Tue, 26 Apr 2011 19:00:25 +0100 Subject: [PATCH] Merges objc top level headers into main headers (using #ifdef __OBJC__) --- include/catch.hpp | 4 +++ include/catch_objc_main.hpp | 31 ------------------- include/catch_with_main.hpp | 15 +++++++++ include/internal/catch_commandline.hpp | 1 + include/{ => internal}/catch_objc.hpp | 1 - projects/XCode/OCTest/CatchOCTestCase.h | 2 +- projects/XCode/OCTest/Main.mm | 2 +- .../OCTest/OCTest.xcodeproj/project.pbxproj | 10 +++--- 8 files changed, 28 insertions(+), 38 deletions(-) delete mode 100644 include/catch_objc_main.hpp rename include/{ => internal}/catch_objc.hpp (99%) diff --git a/include/catch.hpp b/include/catch.hpp index f9ff324c..57fd82c0 100644 --- a/include/catch.hpp +++ b/include/catch.hpp @@ -30,6 +30,10 @@ #include "internal/catch_generators.hpp" #include "internal/catch_interfaces_exception.h" +#ifdef __OBJC__ +#include "internal/catch_objc.hpp" +#endif + ////// #define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, false, true, "REQUIRE" ) diff --git a/include/catch_objc_main.hpp b/include/catch_objc_main.hpp deleted file mode 100644 index 7933a636..00000000 --- a/include/catch_objc_main.hpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * catch_objc_main.hpp - * Catch - * - * Created by Phil on 28/12/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - * - */ - -#ifndef TWOBLUECUBES_CATCH_OBJC_MAIN_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_OBJC_MAIN_HPP_INCLUDED - -#include "catch_runner.hpp" -#include "catch_objc.hpp" - -int main (int argc, const char * argv[]) -{ - NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; - - Catch::registerTestMethods(); - - int result = Catch::Main( argc, (char* const*)argv ); - - [pool drain]; - return result; -} - -#endif \ No newline at end of file diff --git a/include/catch_with_main.hpp b/include/catch_with_main.hpp index ae68c7cc..1c4a37a3 100644 --- a/include/catch_with_main.hpp +++ b/include/catch_with_main.hpp @@ -17,7 +17,22 @@ int main (int argc, char * const argv[]) { +#ifdef __OBJC__ + + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + + Catch::registerTestMethods(); + + int result = Catch::Main( argc, (char* const*)argv ); + + [pool drain]; + return result; + +#else + return Catch::Main( argc, argv ); + +#endif } #endif // TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED diff --git a/include/internal/catch_commandline.hpp b/include/internal/catch_commandline.hpp index 0eedcb00..6a4d0368 100644 --- a/include/internal/catch_commandline.hpp +++ b/include/internal/catch_commandline.hpp @@ -183,6 +183,7 @@ namespace Catch if( m_args.size() != 0 ) return setErrorMode( m_command + " does not accept arguments" ); m_config.setShouldDebugBreak( true ); + break; case modeName: if( m_args.size() != 1 ) return setErrorMode( m_command + " requires exactly one argument (a name)" ); diff --git a/include/catch_objc.hpp b/include/internal/catch_objc.hpp similarity index 99% rename from include/catch_objc.hpp rename to include/internal/catch_objc.hpp index 690ce5d4..8b621695 100644 --- a/include/catch_objc.hpp +++ b/include/internal/catch_objc.hpp @@ -16,7 +16,6 @@ #import #include -#include "catch.hpp" #include "internal/catch_test_case_info.hpp" /////////////////////////////////////////////////////////////////////////////// diff --git a/projects/XCode/OCTest/CatchOCTestCase.h b/projects/XCode/OCTest/CatchOCTestCase.h index aaa909e3..823f97aa 100644 --- a/projects/XCode/OCTest/CatchOCTestCase.h +++ b/projects/XCode/OCTest/CatchOCTestCase.h @@ -8,7 +8,7 @@ // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include "catch_objc.hpp" +#include "catch.hpp" #import #import "TestObj.h" diff --git a/projects/XCode/OCTest/Main.mm b/projects/XCode/OCTest/Main.mm index c303e310..e74b71dc 100644 --- a/projects/XCode/OCTest/Main.mm +++ b/projects/XCode/OCTest/Main.mm @@ -1 +1 @@ -#import "catch_objc_main.hpp" +#import "catch_with_main.hpp" diff --git a/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj b/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj index 02ab295b..cdee764b 100644 --- a/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj +++ b/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj @@ -37,8 +37,9 @@ 4A5953B6128E95D6009DC1B9 /* OCTest.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OCTest.mm; sourceTree = ""; }; 4A5953EF128E9A61009DC1B9 /* CatchOCTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CatchOCTestCase.h; sourceTree = ""; }; 4A5953F0128E9A61009DC1B9 /* CatchOCTestCase.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CatchOCTestCase.mm; sourceTree = ""; }; - 4ADB5B8913655AA4001EB00B /* catch_objc_main.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_objc_main.hpp; path = ../../../include/catch_objc_main.hpp; sourceTree = SOURCE_ROOT; }; - 4ADB5B8A13655AA4001EB00B /* catch_objc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_objc.hpp; path = ../../../include/catch_objc.hpp; sourceTree = SOURCE_ROOT; }; + 4A97DB2813673E3100C8087C /* catch_objc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_objc.hpp; path = ../../../include/internal/catch_objc.hpp; sourceTree = SOURCE_ROOT; }; + 4A97DB2B13673E4700C8087C /* catch.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch.hpp; path = ../../../include/catch.hpp; sourceTree = SOURCE_ROOT; }; + 4A97DB3613673EA300C8087C /* catch_with_main.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_with_main.hpp; path = ../../../include/catch_with_main.hpp; sourceTree = SOURCE_ROOT; }; 8DD76FA10486AA7600D96B5E /* OCTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = OCTest; sourceTree = BUILT_PRODUCTS_DIR; }; C6859EA3029092ED04C91782 /* OCTest.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = OCTest.1; sourceTree = ""; }; /* End PBXFileReference section */ @@ -69,8 +70,6 @@ 08FB7795FE84155DC02AAC07 /* Source */ = { isa = PBXGroup; children = ( - 4ADB5B8913655AA4001EB00B /* catch_objc_main.hpp */, - 4ADB5B8A13655AA4001EB00B /* catch_objc.hpp */, 4AFDF58212CA9E2800F15202 /* Catch */, 32A70AAB03705E1F00C91783 /* OCTest_Prefix.pch */, 08FB7796FE84155DC02AAC07 /* Main.mm */, @@ -102,6 +101,9 @@ 4AFDF58212CA9E2800F15202 /* Catch */ = { isa = PBXGroup; children = ( + 4A97DB3613673EA300C8087C /* catch_with_main.hpp */, + 4A97DB2B13673E4700C8087C /* catch.hpp */, + 4A97DB2813673E3100C8087C /* catch_objc.hpp */, ); name = Catch; sourceTree = "";