Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Xcode project for Carthage #427

Merged
merged 1 commit into from
Mar 19, 2019
Merged

Xcode project for Carthage #427

merged 1 commit into from
Mar 19, 2019

Commits on Mar 19, 2019

  1. Xcode project for Carthage

    This adds an Xcode project to build Themis, enabling distribution via
    Carthage. This requires an Xcode project in the root repo directory
    with shared build schemes.
    
    As it was easier to do, and as it probably provides better debug
    information for Xcode users, Themis build for Xcode is a completely
    new one. We *do not* (re)use existing Makefiles, but this should be
    possible in theory. However, currently the Xcode project replicates
    the existing build and compiles Soter, Themis, and Obj-C Themis files
    manually.
    
    Themis is compiled with OpenSSL as a backend. We pull in the dependency
    via Carthage as well. Currently we use our own fork of the library, but
    later it will be updated to the proper upstream once Carthage support
    lands there.
    
    The project file provides two distinct targets and build schemes: for
    macOS and iOS, and their frameworks have slightly different structure.
    Though, we reuse as many files as possible. For example, the umbrella
    header Themis.h is the same for both platforms. Note that the build
    schemes are *shared*. This is important for Cartage.
    
    Actual framework names are in lowercase: themis.framework. This is for
    compatibility with existing CocoaPods builds which use such naming.
    
    We do not code-sign the resulting frameworks. It is expected that the
    applications using Themis will sign all external framework code that
    they use.
    
    Finally, framework bundles use 'stuttering' identifiers like
    "com.cossacklabs.themis.Themis". This is because later we will need to
    name our documentation examples and it would be nice to put them under
    the same namespace "com.cossacklabs.themis". The framework version is
    provisional 0.10.5 (which is actually preview of 0.11).
    ilammy committed Mar 19, 2019
    Configuration menu
    Copy the full SHA
    8e87ebf View commit details
    Browse the repository at this point in the history