GDAL: GDAL for Windows CE

# GDAL for Windows CE

Overview
Features
Supported Platforms
Content of 'wince' directory
Building GDAL for Windows CE using Microsoft Visual C++ 2005
Enable PROJ.4 support
wince_building_geos
How can I help?

## Overview

This document is devoted to give some overview of the GDAL port for Windows CE operating system.

## Features

Currently, from version 1.4.0, GDAL includes following features for Windows CE platform:

- CPL library
- GDAL and OGR core API
- GDAL drivers:
  - AAIGrid
  - DTED
  - GeoTIFF
- OGR drivers:
  - Generic
  - CSV
  - MITAB
  - ESRI Shapefile
- Unit Test suite (gdalautotest/cpp)
- Optional PROJ.4 support
- Optional GEOS support

## Supported Platforms

GDAL for Windows CE has been tested on following versions of Windows CE:

- Windows CE 3.x
  - Pocket PC 2002
- Windows CE 4.x
  - Windows Mobile 2003
- Windows CE 5.x
  - Windows Mobile 5
  - customized versions of Windows CE 5.0

Supported compilers for Windows CE operating system:

- Microsoft Visual C++ 2005 Standard, Professional or Team Suite Edition
- Microsoft eMbedded Visual C++ 4.0

  Note:
    Currently, no project files provided for eVC++ 4.0 IDE

## Content of 'wince' directory

Note:
  Due to problems with removing directories from CVS and missed synchronization of RC branch, the 'wince' directory includes a few deprecated project files (see below).
  Please DON'T USE them, unless you want to fix them yourself.

Active content:

- msvc80 - project for Visual C++ 2005 to build GDAL DLL for Windows CE
- README - the file you're currently reading
- TODO - planned and requested features

Deprecated:
  Following directories and projects are deprecated. DON'T USE THEM!

- evc4_gdalce_dll
- evc4_gdalce_dll_test
- evc4_gdalce_lib
- evc4_gdalce_lib_test
- msvc8_gdalce_lib
- msvc8_gdalce_lib_test
- wce_test_dll
- wce_test_lib
- wcelibcex

## Building GDAL for Windows CE using Microsoft Visual C++ 2005

1. Requirements

   - You need to have installed Visual C++ 2005 Standard, Professional or Team Suite Edition.
   - You also need to have installed at least one SDK for Windows CE platform:
     - Windows Mobile 2003 Pocket PC SDK
     - Windows Mobile 2003 SmartphoneSDK
     - Windows Mobile 5.0 Pocket PC SDK
     - Windows Mobile 5.0 Smartphone SDK
   - Last requirement is the Run-time Type Information library for the Pocket PC 2003 SDK.

2. External dependencies

   There is only one external dependency required to build GDAL for Windows CE. This dependency is WCELIBCEX library available to download from:

   http://sourceforge.net/projects/wcelibcex

   You can download latest release - wcelibcex-1.0 - or checkout sources directly form SVN. In both cases, you will be provided with project file for Visual C++ 2005.

   Note:
     WCELIBCEX is built to Static Library. For details, check README.txt file form the package.

3. Download GDAL 1.4.0 release or directly from CVS

   Go to http://www.gdal.org/download.html and download ZIP package with GDAL 1.4.0. You can also checkout sources directly from SVN.

   For this guidelines, I assume following directories structure:

       C:\dev\gdal-1.4.0
       C:\dev\wcelibcex-1.0

4. Projects configuration

   1. Open gdalce_dll.sln project in Visual C++ 2005 IDE

      According to the paths presented in step 3, you should load following file:

          C:\dev\gdal-1.4.0\wince\msvc80\gdalce_dll\gdalce_dll.sln

   2. Add WCELIBCEX project to gdalce_dll.sln solution

      Go to File -> Add -> Existing Project, navigage and open following file:

          C:\dev\wcelibcex-1.0\msvc80\wcelibcex_lib.vcproj

   3. Configure path to WCELIBCEX source:
      - Go to View -> Property Manager to open property manager window
      - Expand tree below gdalce_dll -> Debug -> gdalce_common
      - Right-click on gdalce_common and select Properties
      - In Property Pages dialog, under Common Properties, go to User Macros
      - In macros list, double-click on macro named as WCELIBCEX_DIR
      - According paths assumed in step 3, change the macro value to:

            C:\dev\wcelibcex-1.0\src

      - Click OK to apply changes and close the dialog

   4. Configure wcelibcex_lib.vcproj as a dependency for gdalce_dll.vcproj
      - Select gdalce_dll project in Solution Explorer
      - Go to Project -> Project Dependencies
      - In the 'Depends on:' pane, select checkbox next to wcelibcex_lib
      - Click OK to apply and close

5. Ready to build GDAL for Windows CE

   Go to Build and select Build Solution

   After a few minutes, you should see GDAL DLL ready to use. For example, when Pocket PC 2003 SDK is used and Debug configuration requested, all output files are located under this path:

       C:\dev\gdal-1.4.0\wince\msvc80\gdalce_dll\Pocket PC 2003 (ARMV4)\Debug

   There, you will find following binaries:

   - gdalce.dll - dymamic-link library
   - gdalce_i.lib - import library

### Enable PROJ.4 support

PROJ.4 support is optional.

In the CVS repository of PROJ.4, there are available project files for Visual C++ 2005 for Windows CE.

It is recommended to read README.txt file from wince\msvc80 directory in PROJ.4 sources tree. There, you will find instructions how to build PROJ.4 without attaching its project to gdalce_dll.sln. Then you can just add proj.dll and proj_i.lib to linker settings of gdalce_dll.vcproj project.

Below, you can find instructions how to add projce_dll.vcproj project directly to gdalce_dll.sln and build everything together.

1. Go to http://proj.maptools.org and learn how to checkout PROJ.4 source from the CVS

2. Checkout sources to prefered location, for example:

       C:\dev\proj

3. Add projce_dll.vcproj project to gdalce_dll.sln solution

   Go to File -> Add -> Existing Project, navigage and open following file:

       C:\dev\proj\wince\msvc80\projce_dll\projce_dll.vcproj

4. Open Property Manager as described here, open Property Page for gdalce_common, and edit macro named as PROJ_DIR.

   Change value of the PROJ_DIR macro to:

       C:\dev\proj

   Don't close the Property Manager yet.

5. Configure path to WCELIBCEX source:
   - Go to View -> Property Manager to open property manager window
   - Expand tree below projce_dll -> Debug -> projce_common
   - Right-click on projce_common and select Properties
   - In Property Pages dialog, under Common Properties, go to User Macros
   - In macros list, double-click on macro named as WCELIBCEX_DIR
   - According paths assumed in step 3, change the macro value to:

         C:\dev\wcelibcex-1.0\src

   - Click OK to apply changes and close the dialog

6. Follow instructions explained here and add projce_dll.vcproj as a dependency for gdalce_dll.vcproj

7. Update proj_config.h file:

   Go to C:\dev\proj\src and rename proj_config.h.wince to proj_config.h.

8. Ready to build GDAL for Windows CE

   Go to Build and select Build Solution

   Similarly to explanation above in step 5 for GDAL, binaries for PROJ.4 for Windows CE can be found here:

          C:\dev\proj\wince\msvc80\projce_dll\Pocket PC 2003 (ARMV4)\Debug

   There, you can find following binaries:

   - proj.dll - dymamic-link library
   - proj_i.lib - import library

   Note:
     PROJ.4 binaries for Windows CE do not include 'ce' in names. This is due the fact GDAL uses fixed proj.dll name to find and link dynamically with PROJ.4 DLL.

9. After all, put proj.dll to the same directory on device where you copied gdalce.dll and your application which uses GDAL.

## How can I help?

I'd like to encourage everyone interested in using GDAL on Windows CE devices to help in its development. Here is a list of what you can do as a contribution to the project:

- You can build GDAL for Windows CE and report problems if you will meet any
- You can try to build new OGR drivers
- You can test GDAL/OGR on different Windows CE devices
- You can write sample applications using GDAL/OGR and announce them on the GDAL mailing list
- If you have found a bug or something is not working on the Windows CE, please report it on the GDAL's Bugzilla

There is also wince\TODO file where you can find list of things we are going to do.

If you have any comments or questions, please sent them to the gdal-dev@lists.maptools.org mailing list or directly to me on mateusz@loskot.net

$Id: wince_port.dox 11911 2007-08-18 17:31:46Z mloskot $

Generated for GDAL by 1.5.9.