cmake_minimum_required (VERSION 2.8)
project (libphonenumber)
-set (libphonenumber_VERSION_MAJOR 5)
-set (libphonenumber_VERSION_MINOR 4)
+set (libphonenumber_VERSION_MAJOR 7)
+set (libphonenumber_VERSION_MINOR 0)
# Helper functions dealing with finding libraries and programs this library
# depends on.
# Options that can be passed to CMake using 'cmake -DKEY=VALUE'.
option ("BUILD_GEOCODER" "Build the offline phone number geocoder" "ON")
+option ("USE_ALTERNATE_FORMATS" "Use alternate formats" "ON")
+option ("USE_BOOST" "Use Boost" "ON")
option ("USE_ICU_REGEXP" "Use ICU regexp engine" "ON")
option ("USE_LITE_METADATA" "Use lite metadata" "OFF")
option ("USE_RE2" "Use RE2" "OFF")
option ("USE_STD_MAP" "Force the use of std::map" "OFF")
-# Find all the required libraries and programs.
-if (WIN32)
- set (Boost_USE_STATIC_LIBS ON)
+if (${USE_ALTERNATE_FORMATS} STREQUAL "ON")
+ add_definitions ("-DI18N_PHONENUMBERS_USE_ALTERNATE_FORMATS")
endif ()
-find_package (Boost 1.40.0 COMPONENTS date_time thread)
-if (NOT Boost_FOUND)
- print_error ("Boost Datetime/Thread" "Boost")
+
+# Find all the required libraries and programs.
+if (${USE_BOOST} STREQUAL "ON")
+ add_definitions ("-DI18N_PHONENUMBERS_USE_BOOST")
+ if (WIN32)
+ set (Boost_USE_STATIC_LIBS ON)
+ endif ()
+ find_package (Boost 1.40.0 COMPONENTS date_time system thread)
+ if (NOT Boost_FOUND)
+ print_error ("Boost Date_Time/System/Thread" "Boost")
+ endif ()
+ include_directories (${Boost_INCLUDE_DIRS})
endif ()
-include_directories (${Boost_INCLUDE_DIRS})
find_or_build_gtest ()
INCLUDE (CheckIncludeFileCXX)
CHECK_INCLUDE_FILE_CXX ("tr1/unordered_map" HAVE_CXX_TR1_UNORDERED_MAP)
if (HAVE_CXX_TR1_UNORDERED_MAP)
- add_definitions ("-DUSE_TR1_UNORDERED_MAP")
+ add_definitions ("-DI18N_PHONENUMBERS_USE_TR1_UNORDERED_MAP")
endif ()
endif ()
set (
SOURCES
- "src/base/strings/string_piece.cc"
"src/phonenumbers/asyoutypeformatter.cc"
+ "src/phonenumbers/base/strings/string_piece.cc"
"src/phonenumbers/default_logger.cc"
"src/phonenumbers/logger.cc"
"src/phonenumbers/phonemetadata.pb.cc" # Generated by Protocol Buffers.
"src/phonenumbers/phonenumber.cc"
"src/phonenumbers/phonenumber.pb.cc" # Generated by Protocol Buffers.
"src/phonenumbers/phonenumberutil.cc"
+ "src/phonenumbers/regex_based_matcher.cc"
"src/phonenumbers/regexp_cache.cc"
- "src/phonenumbers/shortnumberutil.cc"
+ "src/phonenumbers/shortnumberinfo.cc"
"src/phonenumbers/string_byte_sink.cc"
"src/phonenumbers/stringutil.cc"
"src/phonenumbers/unicodestring.cc"
# regexp_factory.h and regexp_adapter_test.cc.
# When both ICU regexp and RE2 are defined, the regexp engine adapter defaults
# to RE2 unless the ICU implementation is instantiated explictly obviously.
- add_definitions (-DUSE_RE2)
+ add_definitions ("-DI18N_PHONENUMBERS_USE_RE2")
list (APPEND SOURCES "src/phonenumbers/regexp_adapter_re2.cc")
endif ()
if (${USE_ICU_REGEXP} STREQUAL "ON")
- add_definitions (-DUSE_ICU_REGEXP)
+ add_definitions ("-DI18N_PHONENUMBERS_USE_ICU_REGEXP")
list (APPEND SOURCES "src/phonenumbers/regexp_adapter_icu.cc")
# The phone number matcher needs ICU.
- list (APPEND SOURCES "src/phonenumbers/alternate_format.cc")
list (APPEND SOURCES "src/phonenumbers/phonenumbermatch.cc")
list (APPEND SOURCES "src/phonenumbers/phonenumbermatcher.cc")
+ if (${USE_ALTERNATE_FORMATS} STREQUAL "ON")
+ list (APPEND SOURCES "src/phonenumbers/alternate_format.cc")
+ endif ()
endif ()
# Library sources excluding the metadata files, since special metadata is used
set (METADATA_TARGET "generate-lite-metadata")
add_metadata_gen_target (
${METADATA_TARGET}
- "${RESOURCES_DIR}/PhoneNumberMetaData.xml"
+ "${RESOURCES_DIR}/PhoneNumberMetadata.xml"
"lite_metadata"
"metadata"
)
set (METADATA_TARGET "generate-metadata")
add_metadata_gen_target (
${METADATA_TARGET}
- "${RESOURCES_DIR}/PhoneNumberMetaData.xml"
+ "${RESOURCES_DIR}/PhoneNumberMetadata.xml"
"metadata"
"metadata"
)
set (TEST_METADATA_TARGET "generate-test-metadata")
add_metadata_gen_target (
${TEST_METADATA_TARGET}
- "${RESOURCES_DIR}/PhoneNumberMetaDataForTesting.xml"
+ "${RESOURCES_DIR}/PhoneNumberMetadataForTesting.xml"
"test_metadata"
"metadata"
)
list (APPEND TESTING_LIBRARY_SOURCES "src/phonenumbers/test_metadata.cc")
+# Add the short metadata generation target.
+set (SHORT_METADATA_TARGET "generate-short-number-metadata")
+add_metadata_gen_target (
+ ${SHORT_METADATA_TARGET}
+ "${RESOURCES_DIR}/ShortNumberMetadata.xml"
+ "short_metadata"
+ "short_metadata"
+)
+# This is used both for the real library and for testing.
+list (APPEND SOURCES "src/phonenumbers/short_metadata.cc")
+list (APPEND TESTING_LIBRARY_SOURCES "src/phonenumbers/short_metadata.cc")
+
if (${USE_ICU_REGEXP} STREQUAL "ON")
- # Add alternate format metadata generation for the phone number matcher
- set (ALT_FORMAT_METADATA_TARGET "generate-alt-format-metadata")
- add_metadata_gen_target (
- ${ALT_FORMAT_METADATA_TARGET}
- "${RESOURCES_DIR}/PhoneNumberAlternateFormats.xml"
- "alternate_format"
- "alternate_format"
- )
+ if (${USE_ALTERNATE_FORMATS} STREQUAL "ON")
+ # Add alternate format metadata generation for the phone number matcher.
+ set (ALT_FORMAT_METADATA_TARGET "generate-alt-format-metadata")
+ add_metadata_gen_target (
+ ${ALT_FORMAT_METADATA_TARGET}
+ "${RESOURCES_DIR}/PhoneNumberAlternateFormats.xml"
+ "alternate_format"
+ "alternate_format"
+ )
+ endif ()
endif ()
if (NOT WIN32)
# Build a static library (without -fPIC).
add_library (phonenumber STATIC ${SOURCES})
if (${USE_ICU_REGEXP} STREQUAL "ON")
- add_dependencies (phonenumber ${ALT_FORMAT_METADATA_TARGET})
+ if (${USE_ALTERNATE_FORMATS} STREQUAL "ON")
+ add_dependencies (phonenumber ${ALT_FORMAT_METADATA_TARGET})
+ endif ()
endif ()
if (${BUILD_GEOCODER} STREQUAL "ON")
if (BUILD_SHARED_LIB)
add_library (phonenumber-shared SHARED ${SOURCES})
if (${USE_ICU_REGEXP} STREQUAL "ON")
- add_dependencies (phonenumber ${ALT_FORMAT_METADATA_TARGET})
+ if (${USE_ALTERNATE_FORMATS} STREQUAL "ON")
+ add_dependencies (phonenumber ${ALT_FORMAT_METADATA_TARGET})
+ endif ()
endif ()
set_target_properties (phonenumber-shared
PROPERTIES
# Libraries used by both libphonenumber and libgeocoding.
set (COMMON_DEPS ${ICU_LIB})
-set (LIBRARY_DEPS ${PROTOBUF_LIB} ${Boost_LIBRARIES})
+set (LIBRARY_DEPS ${PROTOBUF_LIB})
+
+if (${USE_BOOST} STREQUAL "ON")
+ list (APPEND LIBRARY_DEPS ${Boost_LIBRARIES})
+endif ()
if (${USE_RE2} STREQUAL "ON")
list (APPEND LIBRARY_DEPS ${RE2_LIB})
"test/phonenumbers/regexp_adapter_test.cc"
"test/phonenumbers/regexp_cache_test.cc"
"test/phonenumbers/run_tests.cc"
- "test/phonenumbers/shortnumberutil_test.cc"
+ "test/phonenumbers/shortnumberinfo_test.cc"
"test/phonenumbers/stringutil_test.cc"
"test/phonenumbers/test_util.cc"
"test/phonenumbers/unicodestring_test.cc"
"src/phonenumbers/asyoutypeformatter.h"
"src/phonenumbers/callback.h"
"src/phonenumbers/logger.h"
+ "src/phonenumbers/matcher_api.h"
"src/phonenumbers/phonenumber.pb.h"
"src/phonenumbers/phonemetadata.pb.h"
"src/phonenumbers/phonenumberutil.h"
"src/phonenumbers/regexp_adapter.h"
"src/phonenumbers/regexp_cache.h"
- "src/phonenumbers/shortnumberutil.h"
+ "src/phonenumbers/shortnumberinfo.h"
"src/phonenumbers/unicodestring.h"
DESTINATION include/phonenumbers/
)
)
endif ()
-install (FILES "src/base/basictypes.h" DESTINATION include/base/)
+install (
+ FILES
+ "src/phonenumbers/base/basictypes.h"
+ "src/phonenumbers/base/template_util.h"
+ "src/phonenumbers/base/logging.h"
+ "src/phonenumbers/base/thread_checker.h"
+ DESTINATION include/phonenumbers/base/
+)
install (FILES
- "src/base/memory/scoped_ptr.h"
- "src/base/memory/singleton.h"
- DESTINATION include/base/memory/
+ "src/phonenumbers/base/memory/scoped_ptr.h"
+ "src/phonenumbers/base/memory/singleton.h"
+ "src/phonenumbers/base/memory/singleton_posix.h"
+ DESTINATION include/phonenumbers/base/memory/
)
-install (FILES "src/base/synchronization/lock.h"
- DESTINATION include/base/synchronization/)
+install (FILES "src/phonenumbers/base/synchronization/lock.h"
+ DESTINATION include/phonenumbers/base/synchronization/)
install (TARGETS phonenumber LIBRARY DESTINATION lib/ ARCHIVE DESTINATION lib/)