You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Philippe Liard f7c8eeebab CPP: libphonenumberv5.0 metadata changes 14 years ago
..
src CPP: libphonenumberv5.0 metadata changes 11 years ago
test/phonenumbers CPP: Test geocoding data. 11 years ago
CMakeLists.txt CPP: Test geocoding data. 11 years ago
LICENSE Changing license to Libphonenumber Authors. 11 years ago
README CPP: Add Windows instructions to the README file. 11 years ago

README

C++ version of the libphonenumber project.

This is a port of the Java version.

This project uses some third-party code:
- src/phonenumbers/utf/ sources come from lib9 which is also used in Go.


Building the library on GNU/Linux
---------------------------------
Requirements:
- CMake build system
http://www.cmake.org

You can install it very easily on a Debian-based GNU/Linux distribution:
$ sudo apt-get install cmake

- Protocol Buffers
http://code.google.com/p/protobuf/
Version 2.4 or more recent is required.

You can install it very easily on a Debian-based GNU/Linux distribution:
$ sudo apt-get install libprotobuf-dev

Note: if your GNU/Linux distribution doesn't provide the needed package,
please download and install it manually:
$ tar xjf protobuf-2.4.tar.bz2
$ cd protobuf-2.4
$ ./configure && make && sudo make install

- Google Test
http://code.google.com/p/googletest/

You can install it very easily on a Debian-based GNU/Linux distribution:
$ sudo apt-get install libgtest-dev

- RE2
http://code.google.com/p/re2/

You can install it very easily on Ubuntu Maverick and later:
$ sudo apt-get install libre2-dev

Otherwise if you use a Debian-based distribution you can fetch the Ubuntu
package which should work:
http://packages.ubuntu.com/maverick/libre2-dev

If you want to install it manually:
You need Mercurial to checkout its source code:
$ sudo apt-get install mercurial

Then checkout, build and install it:
$ hg clone https://re2.googlecode.com/hg re2
$ cd re2
$ make test
$ make install
$ make testinstall

- ICU
Version 4.4 or more recent is required.
It can be built from sources. You need to download the source tarball at
this location:
http://site.icu-project.org/download
Then you can extract, build and install it this way:
$ tar xzf icu4c-4_4_2-src.tgz
$ cd icu/source
$ ./configure && make && sudo make install

If you have a Debian-based distribution providing an up-to-date version of
ICU, you can install it using apt-get:
$ sudo apt-get install libicu-dev

- Boost
Version 1.40 or more recent is required.

You can install it very easily on a Debian-based GNU/Linux distribution:
$ sudo apt-get install libboost1.40-dev libboost-thread1.40-dev

Note: Boost Thread is the only library needed at link time.

How to build libphonenumber C++:
$ cd libphonenumber
$ mkdir build
$ cd build
$ cmake ..
$ make


Building the library on Windows (Visual Studio)
-----------------------------------------------
The library was tested with Visual Studio 2010.

You will need to manually fetch and install the following dependencies:
- CMake (tested with v2.8.6):
http://cmake.org/cmake/resources/software.html
* Download and install the Win32 installer.

- Boost (tested with v1.44) from BoostPro:
http://www.boostpro.com/download/
* Select all the variants and Boost DateTime and Boost Thread during the
installation process.

- GTest (tested with v1.6.0):
http://code.google.com/p/googletest/downloads/list
* Open msvc/gtest-md.sln with Visual Studio and build the whole solution.

- ICU (MSVC binaries, tested with v4.8.1):
http://site.icu-project.org/download/48#ICU4C-Download
* Simply extract the archive.

- Protocol Buffers:
http://code.google.com/p/protobuf/downloads/list
* Open vsprojects/protobuf.sln with Visual Studio and build the whole
solution.

Then run cmake-gui and specify the path to the libphonenumber's cpp directory
and its build directory which must be created (e.g. cpp/build).

When clicking on "Configure", specify the appropriate Visual Studio version
(tested with 2010).

Then CMake will need your help to locate the dependencies. You will have to set
the following variables (this example assumes that you extracted the
dependencies to C:/).

GTEST_INCLUDE_DIR C:/gtest-1.6.0/include
GTEST_LIB C:/gtest-1.6.0/msvc/gtest-md/Release/gtest.lib

ICU_I18N_INCLUDE_DIR C:/icu/include
ICU_I18N_LIB C:/icu/lib/icuin.lib

ICU_UC_INCLUDE_DIR C:/icu/include
ICU_UC_LIB C:/icu/lib/icuuc.lib

PROTOBUF_INCLUDE_DIR C:/protobuf-2.4.1/src
PROTOBUF_LIB C:/protobuf-2.4.1/vsprojects/Release/libprotobuf.lib
PROTOC_BIN C:/protobuf-2.4.1/vsprojects/Release/protoc.exe

Then you can click on "Configure" again. CMake should have located all the
dependencies.
Then click on "Generate" to generate the appropriate Visual Studio project.
Then open cpp/build/libphonenumber.sln with Visual Studio and build the INSTALL
target.

As a result the library's headers and binaries should have been installed to
C:/Program Files/libphonenumber/.
Note that this path can be set by overriding the CMAKE_INSTALL_PREFIX variable
with cmake-gui.

Supported build parameters
--------------------------
Build parameters can be specified invoking CMake with '-DKEY=VALUE' or using a
CMake user interface (ccmake or cmake-gui).

USE_ICU_REGEXP = ON | OFF [ON] -- Use ICU regexp engine.
USE_LITE_METADATA = ON | OFF [OFF] -- Generates smaller metadata that doesn't
include example numbers.
USE_RE2 = ON | OFF [OFF] -- Use RE2.
USE_STD_MAP = ON | OFF [OFF] -- Force the use of std::map.