diff options
Diffstat (limited to 'dist/etc/ios/README')
-rw-r--r-- | dist/etc/ios/README | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/dist/etc/ios/README b/dist/etc/ios/README new file mode 100644 index 0000000..5edfcb2 --- /dev/null +++ b/dist/etc/ios/README @@ -0,0 +1,140 @@ +This file describes how to build and use XSD/e with XCode and iPhone/iOS. + +It is possible to build the XSD/e runtime library (libxsde) and examples +using GNU make and the native XSD/e build system. It is also possible to +create an XCode project and build the XSD/e runtime from the XCode IDE. +The latter approach allows you to make sure the XSD/e runtime and your +application are built with exactly the same compiler options and without +having to manually copy the options from the XCode project to the XSD/e +configuration file. The following two sections describe each approach +in more detail. + + +GNU make Build +-------------- + +A number of sample configuration files are provided for the GNU make- +based build. The config-device-*.make files are for the device and +config-simulator-*.make are for the simulator. You will need to copy +one of these files to the config/ directory and rename it to config.make. +If your XCode is installed in a location other than the default +(/Developer) then you will need to adjust the paths at the beginning +of the configuration file. You may also need to adjust the iOS SDK +version (e.g., 4.0 or 4.2 instead of 4.1) as well as the C and C++ +compiler flags, notably the target architecture (-arch). Additionally, +you may also want to check other configuration parameters (e.g., the +use of iostream, STL, C++ exceptions, etc; they are all enabled by +default). + + +XCode Build +----------- + +For this approach the config-xcode.make configuration file included in +this directory implements a split build procedure where the XSD/e build +system is used to generate the XSD/e configuration header +(libxsde/xsde/config.h) as well as the list of source files that need to +be compiled. Then the XCode project is created to compile the source files +and build the libxsde.a library. + +The following step-by-step instructions show how to build the XSD/e runtime +library using this method as well as how to integrate XSD/e into your +application. + +To build the XSD/e runtime library (libxsde.a), perform the following steps: + +1. Unpack the pre-compiled XSD/e package for Mac OS X. In the rest of the + steps we will refer to the resulting XSD/e directory as xsde-x.y.z. + +2. Start a new terminal window and run the following commands: + + cd xsde-x.y.z + cp etc/iphone/config-xcode.make config/config.make + + Don't close the terminal. + +3. Edit config/config.make and adjust the XSD/e configuration to suit your + requirements. + +4. In the terminal, execute: + + cd libxsde + make + + If the make command is not found, try /Developer/usr/bin/make (or your + alternative XCode installation directory). + + +5. Start XCode and perform the following steps: + + 5.1 Select "File"->"New Project" + + 5.2 In the opened dialog select "iOS Library"->"Cocoa Touch Static + Library". Click "Choose...". + + 5.3 In the next dialog type libxsde in the "Save As" field and navigate + to the xsde-x.y.z directory. Click "Save". + + 5.4 Next you should see a warning dialog saying that the libxsde directory + already exists. This is expected so click "Replace". + + 5.5 In the project window in the "Groups & Files" list select "Other + Sources" group, then select "Project"->"Add to Project...". + + 5.6 In the opened dialog navigate to the xsde-x.y.z/libxsde directory and + select the src directory. Click "Add". + + 5.7 In the next dialog leave the default settings and click "Add". Now + you should see multiple source files (.cxx and .c) listed in the + "Other Sources" group. + + 5.8 Next select "Project"->"Edit Project Settings", "Build" tab. In the + "Configurations" drop-down list select "All Configurations". + + 5.9 Scroll down to the "Search Paths" section and add . (dot) to the + "Header Search Paths" field. + + 5.10 Build the project for all the desired configurations (for example, + Debug/Release, Device/Simulator, ARMv6/ARMv7, etc). + +6. In the terminal window create "fat" libraries by running the following + commands (which may need to be adjusted depending on the configurations + that you have built): + + cd build + lipo -output libxsde.a -create Release-iphonesimulator/liblibxsde.a Release-iphoneos/liblibxsde.a + lipo -output libxsde-d.a -create Debug-iphonesimulator/liblibxsde.a Debug-iphoneos/liblibxsde.a + + +If at some point you need to change the XSD/e configuration then it is best +to start from scratch (step 1 above) since the set of files that is added +to the XCode project may vary from configuration to configuration. + +Once the runtime library is built, to integrate XSD/e into your application +perform the following steps: + +1. Compile your schemas to C++ with the XSD/e compiler (xsde-x.y.z/bin/xsde) + and add the resulting generated C++ files to your project. + +2. To link your application to the XSD/e runtime library (libxsde), perform + the following steps in your project: + + 2.1 In the "Targets" group, double-click on your application to open the + "Info" dialog. + + 2.2 Select the "General" tab and click on the Plus (+) button to add the + library. + + 2.3 In the opened dialog click the "Add Other..." button and add either + the libxsde.a or libxsde-d.a (debug) fat library created above. + +3. To add the XSD/e runtime headers to your application's search paths, + perform the following steps in your project: + + 3.1 Select "Project"->"Edit Project Settings", "Build" tab. In the + "Configurations" drop-down list select "All Configurations". + + 3.2 Scroll down to the "Search Paths" section and add the path to the + xsde-x.y.z/libxsde directory to the "Header Search Paths" field. + + 3.3 Build the application. |