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

Remove ObjCThemis.xcodeproj #704

Merged
merged 6 commits into from
Aug 14, 2020

Commits on Aug 14, 2020

  1. Remove ObjCThemis.xcodeproj

    The idea behind building "objcthemis.framework" has been to unify import
    syntax between Carthage and CocoaPods. Unfortunately, it turned out to
    be a mistake. "objcthemis.framework" does not work without
    "themis.framework" being present alongside it because of how module
    resolution works. Despite "objcthemis.framework" providing the same
    "themis" module as "themis.framework", the compiler will look for a
    framework named "themis.framework" when resolving "import themis".
    
    Moreover, the original issue that "objcthemis.framework" has been called
    to rectify can be resolved more elegantly by importing the module:
    
        @import themis;
    
    which work well with "themis.framework" in both Carthage and CocoaPods.
    
    Since "objcthemis.framework" does not bring any value, remove it. Move
    all new things added to ObjCThemis.xcodeproj into Themis.xcodeproj
    (such as testing Swift 4 vs 5). Remove the import warning. Now Carthage
    will build only one framework: "themis.framework" from Themis.xcodeproj.
    
    I am sorry for the trouble and confusion of this fizzled migration.
    ilammy committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    9c7640b View commit details
    Browse the repository at this point in the history
  2. Changelog typos

    ilammy committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    2531af8 View commit details
    Browse the repository at this point in the history
  3. Change "product name" to "themis"

    Make sure that Xcode targets produce "themis.framework", not
    "objcthemis.framework".
    ilammy committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    dda6835 View commit details
    Browse the repository at this point in the history
  4. Recreate Xcode schemes

    It seems that some components stick the schemes after renaming. Recreate
    them to make sure that we're building "themis.framework" and there are
    no traces of the old Xcode project.
    ilammy committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    7965fa3 View commit details
    Browse the repository at this point in the history
  5. Bring back proxy umbrella header "themis.h"

    Since the framwork is named "themis.framework", its umbrella header
    is expected to be called "themis.h". The actual umbrella header for
    ObjCThemis is "objcthemis.h" which we simply include.
    ilammy committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    3065488 View commit details
    Browse the repository at this point in the history
  6. Use alternative imports in unit tests

    One of the reasons for "objcthemis.framework" existence was to run
    ObjCThemis unit tests from Xcode. Initially, "themis.framework" has
    prevented that due to import issues, and "objcthemis.framework" has
    allowed #import <objcthemis/objcthemis.h> to work. Now that latter
    is gone, the unit-tests are broken again.
    
    However! It seems that using modular imports works for Xcode and
    Carthage (which uses Xcode project). The bad news here is that it
    *does not* work for CocoaPods, which still works only with the old
    form because CocoaPods does some special wicked magic with headers,
    putting them into the "objcthemis" directory.
    
    I do not have much time and willingless to deal with this stupidity
    anymore right now, so here's a compromise: Carthage uses its form,
    CocoaPods use their form, and you get this TODO to maybe get rid of
    this wart some time later.
    ilammy committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    a7bf65a View commit details
    Browse the repository at this point in the history