From 38f8bb3fdc3d3ecb449f85f75504589acafe08b1 Mon Sep 17 00:00:00 2001 From: "Hoa V. DINH" Date: Tue, 21 May 2013 21:59:42 -0700 Subject: Simplified linking against mailcore. Added quick instructions in README.md --- README.md | 33 ++++++++++++++++++++++ build-mac/mailcore2.xcodeproj/project.pbxproj | 22 ++++++++------- .../iOS UI Test.xcodeproj/project.pbxproj | 18 ------------ example/ios/iOS UI Test/iOS UI Test/main.mm | 2 +- .../macExample.xcodeproj/project.pbxproj | 24 ---------------- example/mac/macExample/macExample/main.mm | 5 +--- src/core/basetypes/MCString.cc | 4 +++ src/core/basetypes/MCString.h | 3 +- 8 files changed, 53 insertions(+), 58 deletions(-) diff --git a/README.md b/README.md index 2af7700b..7fd25329 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,36 @@ Mailcore 2 ========== MailCore 2 brings a new API redesigned from ground. + +- POP, IMAP and SMTP support +- RFC822 parser and generator +- asynchronous APIs +- HTML rendering of messages + + +Quick project setup instruction +=============================== + +- Mac framework + +Add mailcore.framework + +Make sure to use LLVM C++ standard library. + +- Mac static library + +Add libMailCore.a + +Other Linker Flags: +-lctemplate -letpan -licudata -licui18n -licuuc -lxml2 -lsasl2 -liconv -ltidy -lc++ -all_load + +Make sure to use LLVM C++ standard library. + +- iOS static library + +Add libMailCore-ios.a + +Other Linker Flags: +-lctemplate-ios -letpan-ios -licudata -licui18n -licuuc -lxml2 -lsasl2 -liconv -ltidy -lstdc++ -all_load + +Make sure to use GNU C++ standard library. diff --git a/build-mac/mailcore2.xcodeproj/project.pbxproj b/build-mac/mailcore2.xcodeproj/project.pbxproj index 44657cec..1c784073 100644 --- a/build-mac/mailcore2.xcodeproj/project.pbxproj +++ b/build-mac/mailcore2.xcodeproj/project.pbxproj @@ -2205,7 +2205,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"$SRCROOT/../scripts\"\n./prepare-mac.sh\n"; + shellScript = "cd \"$SRCROOT/../scripts\"\n./prepare.sh\nif test x$? != x0 ; then\n exit 1\nfi\nfor lib in ctemplate icu4c libetpan ; do\n rsync -av \"$SRCROOT/../Externals/$lib/lib/\" \"$BUILT_PRODUCTS_DIR\"\ndone\n"; }; C6BA2B0A1705F4E6003F0E9E /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2218,7 +2218,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"$SRCROOT/../scripts\"\n./prepare-ios.sh\n"; + shellScript = "cd \"$SRCROOT/../scripts\"\n./prepare-ios.sh\nif test x$? != x0 ; then\n exit 1\nfi\nfor lib in ctemplate-ios icu4c-ios libetpan-ios libsasl-ios tidy-html5-ios ; do\n rsync -av \"$SRCROOT/../Externals/$lib/lib/\" \"$BUILT_PRODUCTS_DIR\"\ndone\n"; }; C6BD28A6170BD87600A91AC1 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -2696,6 +2696,8 @@ C64EA53C169E772200778456 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; COMBINE_HIDPI_IMAGES = YES; EXECUTABLE_PREFIX = lib; PRODUCT_NAME = MailCore; @@ -2705,6 +2707,8 @@ C64EA53D169E772200778456 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; COMBINE_HIDPI_IMAGES = YES; EXECUTABLE_PREFIX = lib; PRODUCT_NAME = MailCore; @@ -2740,10 +2744,6 @@ ); INFOPLIST_FILE = "../tests-ios/tests-ios-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 6.1; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../Externals/libsasl-ios/lib/sasl2\"", - ); OTHER_LDFLAGS = ( "-lctemplate-ios", "-letpan-ios", @@ -2778,10 +2778,6 @@ ); INFOPLIST_FILE = "../tests-ios/tests-ios-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 6.1; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../Externals/libsasl-ios/lib/sasl2\"", - ); OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; OTHER_LDFLAGS = ( "-lctemplate-ios", @@ -2839,11 +2835,14 @@ C6BD289E170BD71100A91AC1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; COMBINE_HIDPI_IMAGES = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; INFOPLIST_FILE = "framework-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; OTHER_LDFLAGS = ( "-lctemplate", "-letpan", @@ -2866,11 +2865,14 @@ C6BD289F170BD71100A91AC1 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; COMBINE_HIDPI_IMAGES = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; INFOPLIST_FILE = "framework-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; OTHER_LDFLAGS = ( "-lctemplate", "-letpan", diff --git a/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj b/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj index 4b8dae30..db280fde 100644 --- a/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj +++ b/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj @@ -432,16 +432,7 @@ CLANG_CXX_LIBRARY = "libstdc++"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "iOS UI Test/iOS UI Test-Prefix.pch"; - HEADER_SEARCH_PATHS = ""; INFOPLIST_FILE = "iOS UI Test/iOS UI Test-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../Externals/libetpan-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/icu4c-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/ctemplate-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/libsasl-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/tidy-html5-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/libsasl-ios/lib/sasl2\"", - ); OTHER_LDFLAGS = ( "-lctemplate-ios", "-letpan-ios", @@ -465,16 +456,7 @@ buildSettings = { GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "iOS UI Test/iOS UI Test-Prefix.pch"; - HEADER_SEARCH_PATHS = ""; INFOPLIST_FILE = "iOS UI Test/iOS UI Test-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../Externals/libetpan-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/icu4c-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/ctemplate-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/libsasl-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/tidy-html5-ios/lib\"", - "\"$(SRCROOT)/../../../Externals/libsasl-ios/lib/sasl2\"", - ); OTHER_LDFLAGS = ( "-lctemplate-ios", "-letpan-ios", diff --git a/example/ios/iOS UI Test/iOS UI Test/main.mm b/example/ios/iOS UI Test/iOS UI Test/main.mm index c9092479..7793820a 100644 --- a/example/ios/iOS UI Test/iOS UI Test/main.mm +++ b/example/ios/iOS UI Test/iOS UI Test/main.mm @@ -12,6 +12,6 @@ #import int main(int argc, char *argv[]) { - mailcore::logEnabled = false; + mailcore::logEnabled = true; return UIApplicationMain(argc, argv, nil, @"AppDelegate"); } diff --git a/example/mac/macExample/macExample.xcodeproj/project.pbxproj b/example/mac/macExample/macExample.xcodeproj/project.pbxproj index baab11de..4cfe53f6 100644 --- a/example/mac/macExample/macExample.xcodeproj/project.pbxproj +++ b/example/mac/macExample/macExample.xcodeproj/project.pbxproj @@ -424,19 +424,7 @@ buildSettings = { CLANG_CXX_LIBRARY = "libc++"; COMBINE_HIDPI_IMAGES = YES; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../../../Externals/libetpan/include", - "$(SRCROOT)/../../../Externals/icu4c/include", - "$(SRCROOT)/../../../Externals/ctemplate/include", - /usr/include/tidy, - /usr/include/libxml2, - ); INFOPLIST_FILE = "macExample/macExample-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "$(SRCROOT)/../../../Externals/libetpan/lib", - "$(SRCROOT)/../../../Externals/icu4c/lib", - "$(SRCROOT)/../../../Externals/ctemplate/lib", - ); PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -447,19 +435,7 @@ buildSettings = { CLANG_CXX_LIBRARY = "libc++"; COMBINE_HIDPI_IMAGES = YES; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../../../Externals/libetpan/include", - "$(SRCROOT)/../../../Externals/icu4c/include", - "$(SRCROOT)/../../../Externals/ctemplate/include", - /usr/include/tidy, - /usr/include/libxml2, - ); INFOPLIST_FILE = "macExample/macExample-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "$(SRCROOT)/../../../Externals/libetpan/lib", - "$(SRCROOT)/../../../Externals/icu4c/lib", - "$(SRCROOT)/../../../Externals/ctemplate/lib", - ); PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; diff --git a/example/mac/macExample/macExample/main.mm b/example/mac/macExample/macExample/main.mm index cdb19817..1749c010 100644 --- a/example/mac/macExample/macExample/main.mm +++ b/example/mac/macExample/macExample/main.mm @@ -8,12 +8,9 @@ #import #include -#include int main(int argc, char *argv[]) { - u_setDataDirectory("/usr/local/share/icu"); - //mailcore::AutoreleasePool * pool = new mailcore::AutoreleasePool(); + //mailcore::setICUDataDirectory(MCSTR("/usr/local/share/icu")); return NSApplicationMain(argc, (const char **)argv); - //pool->release(); } diff --git a/src/core/basetypes/MCString.cc b/src/core/basetypes/MCString.cc index be16fb41..dce01683 100644 --- a/src/core/basetypes/MCString.cc +++ b/src/core/basetypes/MCString.cc @@ -2049,3 +2049,7 @@ bool String::isEqualCaseInsensitive(String * otherString) return caseInsensitiveCompare(otherString) == 0; } +void mailcore::setICUDataDirectory(String * directory) +{ + u_setDataDirectory(directory->fileSystemRepresentation()); +} diff --git a/src/core/basetypes/MCString.h b/src/core/basetypes/MCString.h index fdbf174a..e6c6ce5d 100644 --- a/src/core/basetypes/MCString.h +++ b/src/core/basetypes/MCString.h @@ -127,7 +127,8 @@ namespace mailcore { void appendBytes(const char * bytes, unsigned int length, const char * charset); void appendUTF8CharactersLength(const char * UTF8Characters, unsigned int length); }; - + + void setICUDataDirectory(String * directory); } #endif -- cgit v1.2.3