Category Archives: References

Documentation Published

After far too many delays, the DISAM manual is ready.

This includes a complete reworking and update of the original read folder references, adding cross references and a proper index, and a translation into structured text, from which we are able to publish the manual in virtually any form.

You can download DISAM manual in zip format, or DISAM manual in gzip tar format in html, man and stx2any formats, or see the link above for the inline reader.

Please understand that this is a work in progress, and will have typographical or other errors, and we appreciate your patience, and especially your comments, should you happen to find any.

Apple Swift and D-ISAM

As with any standard C library, D-ISAM is fully supported in Apple Xcode and therefore Swift as covered in Using Swift with Cocoa and Objective-C.

Pure C libraries like D-ISAM and the system libraries are core components of Objective-C, and are imported in the same way (but without most of the fuss) and the real details are covered in Interacting with C APIs.

Building D-ISAM in the Xcode IDE is a guide to working with D-ISAM in the Xcode Integrated Developer Environment, while Building D-ISAM in Xcode from the command line covers the manual installation details.

For quite sensible reasons, Swift Strings will not convert directly to character pointer arrays, unless these are declared as constant, and unfortunately the current D-ISAM library does not include this syntax, although it should. An Update for Constant Chars is available.

Building D-ISAM in the Xcode IDE

Before starting please see Update for Constant Chars.

D-ISAM is probably best deployed as a framework, which may be created as follows.

  1. Start a new Framework project in the IDE.
  2. Add your D-ISAM headers, and make sure they are set Public under Target Membership in the File Inspector.
  3. Add your D-ISAM source, at least the contents of the base folder, and any other modules you need.
  4. In the Framework header (created automatically) #include "isbase.h", or the D-ISAM headers of your choice.

You can use an existing D-ISAM library, including an evaluation library, in place of step 3.

Once built and installed, your D-ISAM framework may be imported into any project by adding the installation directory to Framework Search Paths under Search Paths in Build Options, and optionally, if your installation employs rpath, to Runpath Search Paths under Linking.

Installation is not required if all of your application projects share the same build directory as your D-ISAM framework.

See Creating a Framework and Installing your Framework for the full details.

D-ISAM can also be linked directly into an application by means of the Bridging Header.

This file should include the disam header(s) of your choice.

You may simply add the disam headers directly to your project, or add the disam header directory to the list of User Header Search Paths, in your project Build Settings under Search Paths, in which case you should also set Always Search User Paths to Yes.

You can now copy or link your disam source files directly into your project, or copy or link an existing disam library – including an evaluation library.

You may also wish to see Building D-ISAM in Xcode from the command line.

Building D-ISAM in Xcode from the command line

Makefile for D-ISAM dynamic library in Xcode shows the details needed to build D-ISAM as an Xcode dynamic library, suitable for direct inclusion in any Xcode project.

To build a single arch library for your current development target only

make clean new lib

You can also build D-ISAM for devices other than the default by setting the compiler and sdk-path explicitly

BIN=$(xcrun --sdk iphonesimulator --find clang)
SDK=$(xcrun --sdk iphonesimulator --show-sdk-path)

To build a multi arch library for the selected device

make CC="$BIN -isysroot $SDK -miphoneos-version-min=6.0 -arch i386 -arch x86_64" clean new lib

Static D-ISAM libararies (.a) and regular shared libraries (.so) – as generated by the makefiles distributed with D-ISAM – are also compatible with Xcode, as needed or preferred.

Building a D-ISAM framework for Xcode shows how to build a framework from the command line.

Building D-ISAM in the Xcode IDE covers D-ISAM installation from the Integrated Development Environment.