cmake_minimum_required (VERSION 2.8)
project (libphonenumber)
-set (libphonenumber_VERSION_MAJOR 6)
-set (libphonenumber_VERSION_MINOR 1)
+set (libphonenumber_VERSION_MAJOR 7)
+set (libphonenumber_VERSION_MINOR 0)
+set (libphonenumber_VERSION_PATCH 2)
+
+if (32BIT)
+ set_property (GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
+ set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32")
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -m32")
+endif ()
# Helper functions dealing with finding libraries and programs this library
# depends 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")
+option ("BUILD_STATIC_LIB" "Build static libraries" "ON")
if (${USE_ALTERNATE_FORMATS} STREQUAL "ON")
add_definitions ("-DI18N_PHONENUMBERS_USE_ALTERNATE_FORMATS")
if (WIN32)
set (Boost_USE_STATIC_LIBS ON)
endif ()
- find_package (Boost 1.40.0 COMPONENTS date_time thread)
+ find_package (Boost 1.40.0 COMPONENTS date_time system thread)
if (NOT Boost_FOUND)
- print_error ("Boost Datetime/Thread" "Boost")
+ print_error ("Boost Date_Time/System/Thread" "Boost")
endif ()
include_directories (${Boost_INCLUDE_DIRS})
endif ()
"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/shortnumberinfo.cc"
- "src/phonenumbers/shortnumberutil.cc"
"src/phonenumbers/string_byte_sink.cc"
"src/phonenumbers/stringutil.cc"
"src/phonenumbers/unicodestring.cc"
include_directories ("src")
-# Build a static library (without -fPIC).
-add_library (phonenumber STATIC ${SOURCES})
-if (${USE_ICU_REGEXP} STREQUAL "ON")
- if (${USE_ALTERNATE_FORMATS} STREQUAL "ON")
- add_dependencies (phonenumber ${ALT_FORMAT_METADATA_TARGET})
+if ($BUILD_STATIC_LIB STREQUAL "ON")
+ # Build a static library (without -fPIC).
+ add_library (phonenumber STATIC ${SOURCES})
+ if (${USE_ICU_REGEXP} STREQUAL "ON")
+ if (${USE_ALTERNATE_FORMATS} STREQUAL "ON")
+ add_dependencies (phonenumber ${ALT_FORMAT_METADATA_TARGET})
+ endif ()
endif ()
endif ()
if (${BUILD_GEOCODER} STREQUAL "ON")
- add_library (geocoding STATIC ${GEOCODING_SOURCES})
+ if ($BUILD_STATIC_LIB STREQUAL "ON")
+ add_library (geocoding STATIC ${GEOCODING_SOURCES})
+ endif ()
# The geocoder doesn't use RE2 so there is no reason not to build a shared
# library for it.
add_library (geocoding-shared SHARED ${GEOCODING_SOURCES})
add_library (phonenumber-shared SHARED ${SOURCES})
if (${USE_ICU_REGEXP} STREQUAL "ON")
if (${USE_ALTERNATE_FORMATS} STREQUAL "ON")
- add_dependencies (phonenumber ${ALT_FORMAT_METADATA_TARGET})
+ add_dependencies (phonenumber-shared ${ALT_FORMAT_METADATA_TARGET})
endif ()
endif ()
set_target_properties (phonenumber-shared
list (APPEND LIBRARY_DEPS ${COMMON_DEPS})
-target_link_libraries (phonenumber ${LIBRARY_DEPS})
+if (${BUILD_STATIC_LIB} STREQUAL "ON")
+ target_link_libraries (phonenumber ${LIBRARY_DEPS})
+endif ()
if (BUILD_SHARED_LIB)
target_link_libraries (phonenumber-shared ${LIBRARY_DEPS})
"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/shortnumberinfo.h"
- "src/phonenumbers/shortnumberutil.h"
"src/phonenumbers/unicodestring.h"
DESTINATION include/phonenumbers/
)
endif ()
install (
- FILES "src/phonenumbers/base/basictypes.h"
+ 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/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/phonenumbers/base/synchronization/lock.h"
DESTINATION include/phonenumbers/base/synchronization/)
-install (TARGETS phonenumber LIBRARY DESTINATION lib/ ARCHIVE DESTINATION lib/)
+get_property (LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
+
+if ("${LIB64}" STREQUAL "TRUE")
+ set (LIBDIR lib64)
+else ()
+ set (LIBDIR lib)
+endif ()
+
+if (${BUILD_STATIC_LIB} STREQUAL "ON")
+ install (TARGETS phonenumber LIBRARY DESTINATION ${LIBDIR} ARCHIVE DESTINATION ${LIBDIR})
+endif ()
if (BUILD_SHARED_LIB)
- install (TARGETS phonenumber-shared LIBRARY DESTINATION lib/ ARCHIVE
- DESTINATION lib/)
+ install (TARGETS phonenumber-shared LIBRARY DESTINATION ${LIBDIR} ARCHIVE
+ DESTINATION ${LIBDIR})
endif ()
if (${BUILD_GEOCODER} STREQUAL "ON")
- install (TARGETS geocoding LIBRARY DESTINATION lib/ ARCHIVE DESTINATION lib/)
- install (TARGETS geocoding-shared LIBRARY DESTINATION lib/ ARCHIVE
- DESTINATION lib/)
+ install (TARGETS geocoding LIBRARY DESTINATION ${LIBDIR} ARCHIVE DESTINATION ${LIBDIR})
+ install (TARGETS geocoding-shared LIBRARY DESTINATION ${LIBDIR} ARCHIVE
+ DESTINATION ${LIBDIR})
endif ()
# Build an example program using geocoding, mainly to make sure that both
)
target_link_libraries (geocoding_test_program geocoding phonenumber)
endif ()
+
+# Build an RPM
+set (CPACK_PACKAGE_VERSION ${libphonenumber_VERSION_MAJOR}.${libphonenumber_VERSION_MINOR}.${libphonenumber_VERSION_PATCH})
+set (CPACK_GENERATOR "RPM")
+set (CPACK_PACKAGE_NAME "libphonenumber")
+set (CPACK_RPM_PACKAGE_RELEASE 1)
+set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Google's phone number handling library")
+if (32BIT)
+ set (CPACK_RPM_PACKAGE_ARCHITECTURE i686)
+else ()
+ set (CPACK_RPM_PACKAGE_ARCHITECTURE x86_64)
+endif ()
+set (CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
+include (CPack)