Source for many of The Omni Group's frameworks
Objective-C C Swift HTML Ruby Shell Other
Latest commit bfb611e Nov 21, 2017 @tjw tjw Updated with changes from OmniGroup svn [299743:300398]
Configurations:
- Updated for apparent renaming of CLANG_ANALYZER_MALLOC -> CLANG_ANALYZER_MEMORY_MANAGEMENT
- Updated for apparent renaming of CLANG_ANALYZER_OBJC_CFNUMBER -> CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION.
- Updates to fix use of NSErrorDomain/NSErrorUserInfoKey/NS_ERROR_ENUM.
- Fix implicit conversion of NSNumber to BOOL.
- Update some targets to Swift 4.
- Nullability and type annotations.
- Layout fixes.

OmniFoundation:
- Fix OFXMLElement's block applier to work correctly on elements with a
  single child.
- Add more Swift wrappers for UTI conveniences.

OmniDataObjects:
- Invalidate computed properties during undo or redo, and suppress
  snapshot-based differences of those same properties. This leaves their values
  nil after an undo/redo change, and the next access will compute
  them correctly.

OmniSoftwareUpdate:
- Updated the OSUInstaller.sh script to specify the path to /usr/bin/id,
  and to ignore any errors from that command (which is just there to
  produce diagnostic output to help us determine why the script might be
  failing in other circumstances).
- When we find a news item is available, attempt to download it and cache
  the html before alerting the user.  When the user requests to see it,
  try first to load it directly from the web, which is the only way we can
  expect a good visual result.  If that fails, show the cached html, which will
  have no CSS and no images but will at least be something and the text should
  be readable.
  Clear the cache after the real page is successfully shown, or before running
  a new OSU check.

OmniAppKit:
- Update an assertion to only assert we have integral-sized images for resources
  from our bundle.

README.markdown

OmniGroup

Checking out the source

git clone git://github.com/omnigroup/OmniGroup
git submodule update --init

Xcode

  • We currently use Xcode 9.1 and 9.2 beta 2 for all platforms. You'll probably have the best results if you do too.
  • Add the projects you want to your workspace.
  • Take a look in the Workspaces directory for a sample workspace for the TextEditor iPad example app.

Supported Targets

  • We require iOS 11 and Mac OS X 10.12.

Configuring the Source

We place our project-wide configuration options in xcconfig files, under OmniGroup/Configurations. The naming scheme of the files is fairly straightforward, hopefully. Each project has Omni-Global-{Debug,Release,...}.xcconfig as the basis for the corresponding configuration. Each Mac target has Omni-{Bundle,Application,Tool,...}-{Debug,Release,...}.xcconfig and each iOS target has Touch-{Application,Library}-{Debug,Release,...}.xcconfig. Each of these end point configurations when #includes 'superclass' configurations (with "Common" in the name).

Building

The Workspaces directory contains a couple sample workspace that can be built from Xcode.

Enjoy!