11767c5feSopenharmony_ci# Copyright (C) 2011 The Libphonenumber Authors 21767c5feSopenharmony_ci# 31767c5feSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 41767c5feSopenharmony_ci# you may not use this file except in compliance with the License. 51767c5feSopenharmony_ci# You may obtain a copy of the License at 61767c5feSopenharmony_ci# 71767c5feSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 81767c5feSopenharmony_ci# 91767c5feSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 101767c5feSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 111767c5feSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121767c5feSopenharmony_ci# See the License for the specific language governing permissions and 131767c5feSopenharmony_ci# limitations under the License. 141767c5feSopenharmony_ci 151767c5feSopenharmony_ci# Author: Philippe Liard 161767c5feSopenharmony_ci 171767c5feSopenharmony_cicmake_minimum_required (VERSION 3.11) 181767c5feSopenharmony_ci 191767c5feSopenharmony_ciproject (libphonenumber VERSION 8.13.0) 201767c5feSopenharmony_ci 211767c5feSopenharmony_ciif (32BIT) 221767c5feSopenharmony_ci set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") 231767c5feSopenharmony_ci set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") 241767c5feSopenharmony_ci set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32") 251767c5feSopenharmony_ci set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -m32") 261767c5feSopenharmony_ciendif () 271767c5feSopenharmony_ci 281767c5feSopenharmony_ci# Set out-of-tree tools directory 291767c5feSopenharmony_ciset (TOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../tools/cpp") 301767c5feSopenharmony_ciset (TOOLS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/tools") 311767c5feSopenharmony_ci 321767c5feSopenharmony_ci# Helper functions dealing with finding libraries and programs this library 331767c5feSopenharmony_ci# depends on. 341767c5feSopenharmony_ci 351767c5feSopenharmony_ciinclude (FetchContent) 361767c5feSopenharmony_ciinclude (GNUInstallDirs) 371767c5feSopenharmony_ci 381767c5feSopenharmony_cifunction (print_error DESCRIPTION FILE) 391767c5feSopenharmony_ci message (FATAL_ERROR 401767c5feSopenharmony_ci "Can't find ${DESCRIPTION}: can't locate ${FILE}. Please read the README.") 411767c5feSopenharmony_ciendfunction () 421767c5feSopenharmony_ci 431767c5feSopenharmony_ci# Find a library. If it has not been found, stop CMake with a fatal error 441767c5feSopenharmony_ci# message. 451767c5feSopenharmony_cifunction (find_required_library NAME HEADER LIBRARY DESCRIPTION) 461767c5feSopenharmony_ci # Check the header. 471767c5feSopenharmony_ci find_path (${NAME}_INCLUDE_DIR ${HEADER}) 481767c5feSopenharmony_ci set (INCLUDE_DIR ${${NAME}_INCLUDE_DIR}) 491767c5feSopenharmony_ci 501767c5feSopenharmony_ci if (${INCLUDE_DIR} STREQUAL "${INCLUDE_DIR}-NOTFOUND") 511767c5feSopenharmony_ci print_error (${DESCRIPTION} ${HEADER}) 521767c5feSopenharmony_ci endif () 531767c5feSopenharmony_ci include_directories (${INCLUDE_DIR}) 541767c5feSopenharmony_ci # Check the binary. 551767c5feSopenharmony_ci find_library (${NAME}_LIB ${LIBRARY}) 561767c5feSopenharmony_ci set (LIB ${NAME}_LIB) 571767c5feSopenharmony_ci 581767c5feSopenharmony_ci if (${LIB} STREQUAL "${LIB}-NOTFOUND") 591767c5feSopenharmony_ci print_error (${DESCRIPTION} ${LIBRARY}) 601767c5feSopenharmony_ci endif () 611767c5feSopenharmony_ciendfunction (find_required_library) 621767c5feSopenharmony_ci 631767c5feSopenharmony_ci# Check the library version (if pkg-config available). 641767c5feSopenharmony_cifind_package (PkgConfig) 651767c5feSopenharmony_cifunction (check_library_version VARNAME LIBRARY_WITH_VERSION) 661767c5feSopenharmony_ci if (PKG_CONFIG_FOUND) 671767c5feSopenharmony_ci pkg_check_modules (${VARNAME} ${LIBRARY_WITH_VERSION}) 681767c5feSopenharmony_ci endif () 691767c5feSopenharmony_ciendfunction () 701767c5feSopenharmony_ci 711767c5feSopenharmony_ci# Find a program. If it has not been found, stop CMake with a fatal error 721767c5feSopenharmony_ci# message. 731767c5feSopenharmony_cifunction (find_required_program NAME FILENAME DESCRIPTION) 741767c5feSopenharmony_ci find_program (${NAME}_BIN NAMES ${FILENAME}) 751767c5feSopenharmony_ci 761767c5feSopenharmony_ci if (${NAME}_BIN STREQUAL "${NAME}_BIN-NOTFOUND") 771767c5feSopenharmony_ci print_error (${DESCRIPTION} ${FILENAME}) 781767c5feSopenharmony_ci endif () 791767c5feSopenharmony_ciendfunction (find_required_program) 801767c5feSopenharmony_ci 811767c5feSopenharmony_ci# Options that can be passed to CMake using 'cmake -DKEY=VALUE'. 821767c5feSopenharmony_cioption (BUILD_GEOCODER "Build the offline phone number geocoder" ON) 831767c5feSopenharmony_cioption (REGENERATE_METADATA "Regenerate metadata instead of using it from the source tree" ON) 841767c5feSopenharmony_cioption (USE_ALTERNATE_FORMATS "Use alternate formats" ON) 851767c5feSopenharmony_cioption (USE_PROTOBUF_LITE "Link to protobuf-lite" OFF) 861767c5feSopenharmony_cioption (USE_BOOST "Use Boost" ON) 871767c5feSopenharmony_cioption (USE_ICU_REGEXP "Use ICU regexp engine" ON) 881767c5feSopenharmony_cioption (USE_LITE_METADATA "Use lite metadata" OFF) 891767c5feSopenharmony_cioption (USE_RE2 "Use RE2" OFF) 901767c5feSopenharmony_cioption (USE_STD_MAP "Force the use of std::map" OFF) 911767c5feSopenharmony_cioption (BUILD_STATIC_LIB "Build static libraries" ON) 921767c5feSopenharmony_cioption (BUILD_SHARED_LIBS "Build shared libraries" ON) 931767c5feSopenharmony_cioption (BUILD_TESTING "Build testing" ON) 941767c5feSopenharmony_cioption (BUILD_TOOLS_ONLY "Limit build to targets in ../tools/cpp" OFF) 951767c5feSopenharmony_cioption (USE_STDMUTEX "Use C++ 2011 std::mutex for multi-threading" OFF) 961767c5feSopenharmony_cioption (USE_POSIX_THREAD "Use Posix api for multi-threading" OFF) 971767c5feSopenharmony_ci 981767c5feSopenharmony_ciif (USE_ALTERNATE_FORMATS) 991767c5feSopenharmony_ci add_definitions ("-DI18N_PHONENUMBERS_USE_ALTERNATE_FORMATS") 1001767c5feSopenharmony_ciendif () 1011767c5feSopenharmony_ci 1021767c5feSopenharmony_ci# Find all the required libraries and programs. 1031767c5feSopenharmony_cifind_package(absl) 1041767c5feSopenharmony_ci 1051767c5feSopenharmony_ciif(NOT absl_FOUND) 1061767c5feSopenharmony_ci # Overide abseil install rules for subprojects 1071767c5feSopenharmony_ci set(ABSL_ENABLE_INSTALL ON) 1081767c5feSopenharmony_ci 1091767c5feSopenharmony_ci # Downloading the abseil sources at particular version to not catch up 1101767c5feSopenharmony_ci # with its new build requirements like min C++14 is mandated in that lib. 1111767c5feSopenharmony_ci FetchContent_Declare( 1121767c5feSopenharmony_ci abseil-cpp 1131767c5feSopenharmony_ci GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git 1141767c5feSopenharmony_ci GIT_TAG 273292d 1151767c5feSopenharmony_ci ) 1161767c5feSopenharmony_ci 1171767c5feSopenharmony_ci # Building the abseil binaries 1181767c5feSopenharmony_ci FetchContent_GetProperties(abseil-cpp) 1191767c5feSopenharmony_ci if (NOT abseil-cpp_POPULATED) 1201767c5feSopenharmony_ci FetchContent_Populate(abseil-cpp) 1211767c5feSopenharmony_ci endif () 1221767c5feSopenharmony_ci 1231767c5feSopenharmony_ci if (NOT abseil-cpp_POPULATED) 1241767c5feSopenharmony_ci message (FATAL_ERROR "Could not build abseil-cpp binaries.") 1251767c5feSopenharmony_ci endif () 1261767c5feSopenharmony_ci 1271767c5feSopenharmony_ci # Safeguarding against any potential link errors as mentioned in 1281767c5feSopenharmony_ci # https://github.com/abseil/abseil-cpp/issues/225 1291767c5feSopenharmony_ci set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) 1301767c5feSopenharmony_ci add_subdirectory(${abseil-cpp_SOURCE_DIR} ${abseil-cpp_BINARY_DIR}) 1311767c5feSopenharmony_ciendif() 1321767c5feSopenharmony_ci 1331767c5feSopenharmony_ciif (BUILD_TESTING) 1341767c5feSopenharmony_ci include (../tools/cpp/gtest.cmake) 1351767c5feSopenharmony_ci find_or_build_gtest () 1361767c5feSopenharmony_ciendif() 1371767c5feSopenharmony_ci 1381767c5feSopenharmony_ciif (BUILD_TOOLS_ONLY) 1391767c5feSopenharmony_ci add_subdirectory("${TOOLS_DIR}" "${TOOLS_BINARY_DIR}") 1401767c5feSopenharmony_ci return() 1411767c5feSopenharmony_ciendif() 1421767c5feSopenharmony_ci 1431767c5feSopenharmony_ciif (USE_BOOST) 1441767c5feSopenharmony_ci add_definitions ("-DI18N_PHONENUMBERS_USE_BOOST") 1451767c5feSopenharmony_ci if (WIN32) 1461767c5feSopenharmony_ci set (Boost_USE_STATIC_LIBS ON) 1471767c5feSopenharmony_ci endif () 1481767c5feSopenharmony_ci find_package (Boost 1.40.0 COMPONENTS date_time system thread) 1491767c5feSopenharmony_ci if (NOT Boost_FOUND) 1501767c5feSopenharmony_ci print_error ("Boost Date_Time/System/Thread" "Boost") 1511767c5feSopenharmony_ci endif () 1521767c5feSopenharmony_ci include_directories (${Boost_INCLUDE_DIRS}) 1531767c5feSopenharmony_ciendif () 1541767c5feSopenharmony_ci 1551767c5feSopenharmony_ciif (USE_STDMUTEX) 1561767c5feSopenharmony_ci add_definitions ("-DI18N_PHONENUMBERS_USE_STDMUTEX") 1571767c5feSopenharmony_ciendif () 1581767c5feSopenharmony_ci 1591767c5feSopenharmony_ciif (USE_POSIX_THREAD) 1601767c5feSopenharmony_ci add_definitions ("-DI18N_PHONENUMBERS_HAVE_POSIX_THREAD") 1611767c5feSopenharmony_ci find_package (Threads REQUIRED) 1621767c5feSopenharmony_ciendif () 1631767c5feSopenharmony_ci 1641767c5feSopenharmony_ciif ((NOT USE_BOOST) AND (NOT USE_STDMUTEX)) 1651767c5feSopenharmony_ci find_package (Threads) 1661767c5feSopenharmony_ciendif() 1671767c5feSopenharmony_ci 1681767c5feSopenharmony_ciif (USE_RE2) 1691767c5feSopenharmony_ci find_required_library (RE2 re2/re2.h re2 "Google RE2") 1701767c5feSopenharmony_ciendif () 1711767c5feSopenharmony_ci 1721767c5feSopenharmony_ciif (USE_PROTOBUF_LITE) 1731767c5feSopenharmony_ci find_required_library (PROTOBUF google/protobuf/message_lite.h protobuf-lite 1741767c5feSopenharmony_ci "Google Protocol Buffers") 1751767c5feSopenharmony_ci check_library_version (PC_PROTOBUF protobuf-lite>=2.4) 1761767c5feSopenharmony_cielse () 1771767c5feSopenharmony_ci find_required_library (PROTOBUF google/protobuf/message_lite.h protobuf 1781767c5feSopenharmony_ci "Google Protocol Buffers") 1791767c5feSopenharmony_ci check_library_version (PC_PROTOBUF protobuf>=2.4) 1801767c5feSopenharmony_ciendif () 1811767c5feSopenharmony_ci 1821767c5feSopenharmony_cifind_required_library (ICU_UC unicode/uchar.h icuuc "ICU") 1831767c5feSopenharmony_cicheck_library_version (PC_ICU_UC icu-uc>=4.4) 1841767c5feSopenharmony_ci 1851767c5feSopenharmony_ciset (ICU_INCLUDE_DIR ${ICU_UC_INCLUDE_DIR}) 1861767c5feSopenharmony_ciset (ICU_LIB ${ICU_UC_LIB}) 1871767c5feSopenharmony_ci# If ICU regexp engine is used or if the geocoder is built, use icui18n as well. 1881767c5feSopenharmony_ciif (USE_ICU_REGEXP OR BUILD_GEOCODER) 1891767c5feSopenharmony_ci find_required_library (ICU_I18N unicode/regex.h icui18n "ICU") 1901767c5feSopenharmony_ci check_library_version (PC_ICU_I18N icu-i18n>=4.4) 1911767c5feSopenharmony_ci list (APPEND ICU_INCLUDE_DIR ${ICU_I18N_INCLUDE_DIR}) 1921767c5feSopenharmony_ci list (APPEND ICU_LIB ${ICU_I18N_LIB}) 1931767c5feSopenharmony_ciendif () 1941767c5feSopenharmony_ci 1951767c5feSopenharmony_cifind_required_program (PROTOC protoc 1961767c5feSopenharmony_ci "Google Protocol Buffers compiler (protoc)") 1971767c5feSopenharmony_ci 1981767c5feSopenharmony_ciif (REGENERATE_METADATA) 1991767c5feSopenharmony_ci find_required_program (JAVA java 2001767c5feSopenharmony_ci "Java Runtime Environment") 2011767c5feSopenharmony_ciendif () 2021767c5feSopenharmony_ci 2031767c5feSopenharmony_ciif (APPLE) 2041767c5feSopenharmony_ci FIND_LIBRARY (COREFOUNDATION_LIB CoreFoundation) 2051767c5feSopenharmony_ci FIND_LIBRARY (FOUNDATION_LIB Foundation) 2061767c5feSopenharmony_ci set (CMAKE_MACOSX_RPATH OFF) 2071767c5feSopenharmony_ci set (CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS 2081767c5feSopenharmony_ci "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -undefined dynamic_lookup") 2091767c5feSopenharmony_ciendif () 2101767c5feSopenharmony_ci 2111767c5feSopenharmony_ciif (NOT USE_STD_MAP) 2121767c5feSopenharmony_ci INCLUDE (CheckIncludeFileCXX) 2131767c5feSopenharmony_ci CHECK_INCLUDE_FILE_CXX ("tr1/unordered_map" HAVE_CXX_TR1_UNORDERED_MAP) 2141767c5feSopenharmony_ci if (HAVE_CXX_TR1_UNORDERED_MAP) 2151767c5feSopenharmony_ci add_definitions ("-DI18N_PHONENUMBERS_USE_TR1_UNORDERED_MAP") 2161767c5feSopenharmony_ci endif () 2171767c5feSopenharmony_ciendif () 2181767c5feSopenharmony_ci 2191767c5feSopenharmony_ci# Add protoc (Protocol Buffers compiler) target. 2201767c5feSopenharmony_ciset (RESOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../resources") 2211767c5feSopenharmony_ci 2221767c5feSopenharmony_ciset ( 2231767c5feSopenharmony_ci PROTOBUF_SOURCES "${RESOURCES_DIR}/phonemetadata.proto" 2241767c5feSopenharmony_ci "${RESOURCES_DIR}/phonenumber.proto" 2251767c5feSopenharmony_ci) 2261767c5feSopenharmony_ci 2271767c5feSopenharmony_ciset ( 2281767c5feSopenharmony_ci PROTOBUF_OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonemetadata.pb.cc" 2291767c5feSopenharmony_ci "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonemetadata.pb.h" 2301767c5feSopenharmony_ci "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonenumber.pb.cc" 2311767c5feSopenharmony_ci "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonenumber.pb.h" 2321767c5feSopenharmony_ci) 2331767c5feSopenharmony_ci 2341767c5feSopenharmony_ciadd_custom_command ( 2351767c5feSopenharmony_ci COMMAND ${PROTOC_BIN} --cpp_out=${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/ 2361767c5feSopenharmony_ci --proto_path=${RESOURCES_DIR} ${PROTOBUF_SOURCES} 2371767c5feSopenharmony_ci 2381767c5feSopenharmony_ci OUTPUT ${PROTOBUF_OUTPUT} 2391767c5feSopenharmony_ci DEPENDS ${PROTOBUF_SOURCES} 2401767c5feSopenharmony_ci) 2411767c5feSopenharmony_ci 2421767c5feSopenharmony_ciif (BUILD_GEOCODER) 2431767c5feSopenharmony_ci # Geocoding data cpp file generation 2441767c5feSopenharmony_ci add_subdirectory("${TOOLS_DIR}" "${TOOLS_BINARY_DIR}") 2451767c5feSopenharmony_ci 2461767c5feSopenharmony_ci set (GEOCODING_DIR "${RESOURCES_DIR}/geocoding") 2471767c5feSopenharmony_ci file (GLOB_RECURSE GEOCODING_SOURCES "${GEOCODING_DIR}/*.txt") 2481767c5feSopenharmony_ci 2491767c5feSopenharmony_ci set (GEOCODING_DATA_OUTPUT 2501767c5feSopenharmony_ci "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/geocoding/geocoding_data.cc" 2511767c5feSopenharmony_ci ) 2521767c5feSopenharmony_ci 2531767c5feSopenharmony_ci add_custom_command ( 2541767c5feSopenharmony_ci COMMAND generate_geocoding_data "${GEOCODING_DIR}" 2551767c5feSopenharmony_ci "${GEOCODING_DATA_OUTPUT}" 2561767c5feSopenharmony_ci 2571767c5feSopenharmony_ci OUTPUT ${GEOCODING_DATA_OUTPUT} 2581767c5feSopenharmony_ci DEPENDS ${GEOCODING_SOURCES} 2591767c5feSopenharmony_ci generate_geocoding_data 2601767c5feSopenharmony_ci COMMENT "Generating geocoding data code" 2611767c5feSopenharmony_ci ) 2621767c5feSopenharmony_ciendif () 2631767c5feSopenharmony_ci 2641767c5feSopenharmony_ciset ( 2651767c5feSopenharmony_ci SOURCES 2661767c5feSopenharmony_ci "src/phonenumbers/asyoutypeformatter.cc" 2671767c5feSopenharmony_ci "src/phonenumbers/base/strings/string_piece.cc" 2681767c5feSopenharmony_ci "src/phonenumbers/default_logger.cc" 2691767c5feSopenharmony_ci "src/phonenumbers/logger.cc" 2701767c5feSopenharmony_ci "src/phonenumbers/phonemetadata.pb.cc" # Generated by Protocol Buffers. 2711767c5feSopenharmony_ci "src/phonenumbers/phonenumber.cc" 2721767c5feSopenharmony_ci "src/phonenumbers/phonenumber.pb.cc" # Generated by Protocol Buffers. 2731767c5feSopenharmony_ci "src/phonenumbers/phonenumberutil.cc" 2741767c5feSopenharmony_ci "src/phonenumbers/regex_based_matcher.cc" 2751767c5feSopenharmony_ci "src/phonenumbers/regexp_cache.cc" 2761767c5feSopenharmony_ci "src/phonenumbers/shortnumberinfo.cc" 2771767c5feSopenharmony_ci "src/phonenumbers/string_byte_sink.cc" 2781767c5feSopenharmony_ci "src/phonenumbers/stringutil.cc" 2791767c5feSopenharmony_ci "src/phonenumbers/unicodestring.cc" 2801767c5feSopenharmony_ci "src/phonenumbers/utf/rune.c" 2811767c5feSopenharmony_ci "src/phonenumbers/utf/unicodetext.cc" 2821767c5feSopenharmony_ci "src/phonenumbers/utf/unilib.cc" 2831767c5feSopenharmony_ci) 2841767c5feSopenharmony_ci 2851767c5feSopenharmony_ciif (BUILD_GEOCODER) 2861767c5feSopenharmony_ci set ( 2871767c5feSopenharmony_ci GEOCODING_SOURCES 2881767c5feSopenharmony_ci "src/phonenumbers/geocoding/area_code_map.cc" 2891767c5feSopenharmony_ci "src/phonenumbers/geocoding/default_map_storage.cc" 2901767c5feSopenharmony_ci "src/phonenumbers/geocoding/geocoding_data.cc" 2911767c5feSopenharmony_ci "src/phonenumbers/geocoding/mapping_file_provider.cc" 2921767c5feSopenharmony_ci "src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc" 2931767c5feSopenharmony_ci "src/phonenumbers/phonenumber.pb.h" # Forces proto buffer generation. 2941767c5feSopenharmony_ci ) 2951767c5feSopenharmony_ciendif () 2961767c5feSopenharmony_ci 2971767c5feSopenharmony_ci# Add regexp engine-dependent sources. ICU is used by default. 2981767c5feSopenharmony_ciif (USE_RE2) 2991767c5feSopenharmony_ci # Add a flag to select the right regexp factory implementation used by 3001767c5feSopenharmony_ci # regexp_factory.h and regexp_adapter_test.cc. 3011767c5feSopenharmony_ci # When both ICU regexp and RE2 are defined, the regexp engine adapter defaults 3021767c5feSopenharmony_ci # to RE2 unless the ICU implementation is instantiated explictly obviously. 3031767c5feSopenharmony_ci add_definitions ("-DI18N_PHONENUMBERS_USE_RE2") 3041767c5feSopenharmony_ci list (APPEND SOURCES "src/phonenumbers/regexp_adapter_re2.cc") 3051767c5feSopenharmony_ciendif () 3061767c5feSopenharmony_ci 3071767c5feSopenharmony_ciif (USE_ICU_REGEXP) 3081767c5feSopenharmony_ci add_definitions ("-DI18N_PHONENUMBERS_USE_ICU_REGEXP") 3091767c5feSopenharmony_ci list (APPEND SOURCES "src/phonenumbers/regexp_adapter_icu.cc") 3101767c5feSopenharmony_ci # The phone number matcher needs ICU. 3111767c5feSopenharmony_ci list (APPEND SOURCES "src/phonenumbers/phonenumbermatch.cc") 3121767c5feSopenharmony_ci list (APPEND SOURCES "src/phonenumbers/phonenumbermatcher.cc") 3131767c5feSopenharmony_ci if (USE_ALTERNATE_FORMATS) 3141767c5feSopenharmony_ci list (APPEND SOURCES "src/phonenumbers/alternate_format.cc") 3151767c5feSopenharmony_ci endif () 3161767c5feSopenharmony_ciendif () 3171767c5feSopenharmony_ci 3181767c5feSopenharmony_ci# Library sources excluding the metadata files, since special metadata is used 3191767c5feSopenharmony_ci# for unit-testing. Note that a single testing library is built for both 3201767c5feSopenharmony_ci# libphonenumber and geocoding. 3211767c5feSopenharmony_ciset (TESTING_LIBRARY_SOURCES ${SOURCES}) 3221767c5feSopenharmony_ciif (BUILD_GEOCODER) 3231767c5feSopenharmony_ci list (APPEND TESTING_LIBRARY_SOURCES ${GEOCODING_SOURCES}) 3241767c5feSopenharmony_ciendif () 3251767c5feSopenharmony_ci 3261767c5feSopenharmony_ci# Add metadata code generation targets. 3271767c5feSopenharmony_ci 3281767c5feSopenharmony_ci# This function is invoked to create metadata, test metadata and lite metadata 3291767c5feSopenharmony_ci# code generation targets. 3301767c5feSopenharmony_cifunction (add_metadata_gen_target TARGET_NAME XML_FILE METADATA_TYPE METADATA_HEADER) 3311767c5feSopenharmony_ci set (METADATA_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers") 3321767c5feSopenharmony_ci set (GEN_OUTPUT "${METADATA_SOURCE_DIR}/${METADATA_TYPE}.cc" "${METADATA_SOURCE_DIR}/${METADATA_HEADER}.h") 3331767c5feSopenharmony_ci set (JAR_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../tools/java/cpp-build/target") 3341767c5feSopenharmony_ci set (JAR_PATH "${JAR_PATH}/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar") 3351767c5feSopenharmony_ci 3361767c5feSopenharmony_ci if (REGENERATE_METADATA) 3371767c5feSopenharmony_ci add_custom_command ( 3381767c5feSopenharmony_ci COMMAND ${JAVA_BIN} -jar 3391767c5feSopenharmony_ci ${JAR_PATH} BuildMetadataCppFromXml ${XML_FILE} 3401767c5feSopenharmony_ci ${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers ${METADATA_TYPE} 3411767c5feSopenharmony_ci 3421767c5feSopenharmony_ci OUTPUT ${GEN_OUTPUT} 3431767c5feSopenharmony_ci DEPENDS ${XML_FILE} 3441767c5feSopenharmony_ci ) 3451767c5feSopenharmony_ci else () 3461767c5feSopenharmony_ci add_custom_command ( 3471767c5feSopenharmony_ci COMMAND echo "skip metadata generation from" 3481767c5feSopenharmony_ci ${XML_FILE} "to" 3491767c5feSopenharmony_ci ${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers ${METADATA_TYPE} 3501767c5feSopenharmony_ci 3511767c5feSopenharmony_ci OUTPUT ${GEN_OUTPUT} 3521767c5feSopenharmony_ci DEPENDS ${XML_FILE} 3531767c5feSopenharmony_ci ) 3541767c5feSopenharmony_ci endif () 3551767c5feSopenharmony_ci 3561767c5feSopenharmony_ci add_custom_target ( 3571767c5feSopenharmony_ci ${TARGET_NAME} 3581767c5feSopenharmony_ci DEPENDS ${GEN_OUTPUT} 3591767c5feSopenharmony_ci COMMENT "Generating Metadata code" 3601767c5feSopenharmony_ci ) 3611767c5feSopenharmony_ciendfunction (add_metadata_gen_target) 3621767c5feSopenharmony_ci 3631767c5feSopenharmony_ciif (USE_LITE_METADATA) 3641767c5feSopenharmony_ci # Add the lite metadata generation target. 3651767c5feSopenharmony_ci set (METADATA_TARGET "generate-lite-metadata") 3661767c5feSopenharmony_ci add_metadata_gen_target ( 3671767c5feSopenharmony_ci ${METADATA_TARGET} 3681767c5feSopenharmony_ci "${RESOURCES_DIR}/PhoneNumberMetadata.xml" 3691767c5feSopenharmony_ci "lite_metadata" 3701767c5feSopenharmony_ci "metadata" 3711767c5feSopenharmony_ci ) 3721767c5feSopenharmony_ci list (APPEND SOURCES "src/phonenumbers/lite_metadata.cc") 3731767c5feSopenharmony_cielse () 3741767c5feSopenharmony_ci # Add the metadata generation target. 3751767c5feSopenharmony_ci set (METADATA_TARGET "generate-metadata") 3761767c5feSopenharmony_ci add_metadata_gen_target ( 3771767c5feSopenharmony_ci ${METADATA_TARGET} 3781767c5feSopenharmony_ci "${RESOURCES_DIR}/PhoneNumberMetadata.xml" 3791767c5feSopenharmony_ci "metadata" 3801767c5feSopenharmony_ci "metadata" 3811767c5feSopenharmony_ci ) 3821767c5feSopenharmony_ci list (APPEND SOURCES "src/phonenumbers/metadata.cc") 3831767c5feSopenharmony_ciendif () 3841767c5feSopenharmony_ci 3851767c5feSopenharmony_ci# Add the test metadata generation target. 3861767c5feSopenharmony_ciset (TEST_METADATA_TARGET "generate-test-metadata") 3871767c5feSopenharmony_ciadd_metadata_gen_target ( 3881767c5feSopenharmony_ci ${TEST_METADATA_TARGET} 3891767c5feSopenharmony_ci "${RESOURCES_DIR}/PhoneNumberMetadataForTesting.xml" 3901767c5feSopenharmony_ci "test_metadata" 3911767c5feSopenharmony_ci "test_metadata" 3921767c5feSopenharmony_ci) 3931767c5feSopenharmony_cilist (APPEND TESTING_LIBRARY_SOURCES "src/phonenumbers/test_metadata.cc") 3941767c5feSopenharmony_ci 3951767c5feSopenharmony_ci# Add the short metadata generation target. 3961767c5feSopenharmony_ciset (SHORT_METADATA_TARGET "generate-short-number-metadata") 3971767c5feSopenharmony_ciadd_metadata_gen_target ( 3981767c5feSopenharmony_ci ${SHORT_METADATA_TARGET} 3991767c5feSopenharmony_ci "${RESOURCES_DIR}/ShortNumberMetadata.xml" 4001767c5feSopenharmony_ci "short_metadata" 4011767c5feSopenharmony_ci "short_metadata" 4021767c5feSopenharmony_ci) 4031767c5feSopenharmony_ci# This is used both for the real library and for testing. 4041767c5feSopenharmony_cilist (APPEND SOURCES "src/phonenumbers/short_metadata.cc") 4051767c5feSopenharmony_cilist (APPEND TESTING_LIBRARY_SOURCES "src/phonenumbers/short_metadata.cc") 4061767c5feSopenharmony_ci 4071767c5feSopenharmony_ciif (USE_ICU_REGEXP) 4081767c5feSopenharmony_ci if (USE_ALTERNATE_FORMATS) 4091767c5feSopenharmony_ci # Add alternate format metadata generation for the phone number matcher. 4101767c5feSopenharmony_ci set (ALT_FORMAT_METADATA_TARGET "generate-alt-format-metadata") 4111767c5feSopenharmony_ci add_metadata_gen_target ( 4121767c5feSopenharmony_ci ${ALT_FORMAT_METADATA_TARGET} 4131767c5feSopenharmony_ci "${RESOURCES_DIR}/PhoneNumberAlternateFormats.xml" 4141767c5feSopenharmony_ci "alternate_format" 4151767c5feSopenharmony_ci "alternate_format" 4161767c5feSopenharmony_ci ) 4171767c5feSopenharmony_ci endif () 4181767c5feSopenharmony_ciendif () 4191767c5feSopenharmony_ci 4201767c5feSopenharmony_ciif (NOT WIN32) 4211767c5feSopenharmony_ci add_definitions ("-Wall -Werror") 4221767c5feSopenharmony_ciendif () 4231767c5feSopenharmony_ci 4241767c5feSopenharmony_ciinclude_directories ("src") 4251767c5feSopenharmony_ci 4261767c5feSopenharmony_ci#---------------------------------------------------------------- 4271767c5feSopenharmony_ci# Collate dependencies 4281767c5feSopenharmony_ci#---------------------------------------------------------------- 4291767c5feSopenharmony_ci 4301767c5feSopenharmony_ciset (LIBRARY_DEPS ${ICU_LIB} ${PROTOBUF_LIB} absl::node_hash_set absl::strings absl::synchronization) 4311767c5feSopenharmony_ci 4321767c5feSopenharmony_ciif (USE_BOOST) 4331767c5feSopenharmony_ci list (APPEND LIBRARY_DEPS ${Boost_LIBRARIES}) 4341767c5feSopenharmony_ciendif () 4351767c5feSopenharmony_ci 4361767c5feSopenharmony_ciif (USE_RE2) 4371767c5feSopenharmony_ci list (APPEND LIBRARY_DEPS ${RE2_LIB}) 4381767c5feSopenharmony_ciendif () 4391767c5feSopenharmony_ci 4401767c5feSopenharmony_ciif (USE_POSIX_THREAD OR ((APPLE OR UNIX) AND (NOT (USE_BOOST OR USE_STDMUTEX)))) 4411767c5feSopenharmony_ci if(CMAKE_USE_PTHREADS_INIT) 4421767c5feSopenharmony_ci set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread") 4431767c5feSopenharmony_ci endif() 4441767c5feSopenharmony_ci if(CMAKE_THREAD_LIBS_INIT) 4451767c5feSopenharmony_ci list (APPEND LIBRARY_DEPS ${CMAKE_THREAD_LIBS_INIT}) 4461767c5feSopenharmony_ci endif() 4471767c5feSopenharmony_ciendif () 4481767c5feSopenharmony_ci 4491767c5feSopenharmony_ciif (APPLE) 4501767c5feSopenharmony_ci list (APPEND LIBRARY_DEPS ${COREFOUNDATION_LIB} ${FOUNDATION_LIB}) 4511767c5feSopenharmony_ciendif () 4521767c5feSopenharmony_ci 4531767c5feSopenharmony_ci#---------------------------------------------------------------- 4541767c5feSopenharmony_ci# Build libraries 4551767c5feSopenharmony_ci#---------------------------------------------------------------- 4561767c5feSopenharmony_ci 4571767c5feSopenharmony_ciif (BUILD_STATIC_LIB) 4581767c5feSopenharmony_ci # Build a static library (without -fPIC). 4591767c5feSopenharmony_ci add_library (phonenumber STATIC ${SOURCES}) 4601767c5feSopenharmony_ci target_link_libraries (phonenumber ${LIBRARY_DEPS}) 4611767c5feSopenharmony_ci target_include_directories(phonenumber PUBLIC $<INSTALL_INTERFACE:include>) 4621767c5feSopenharmony_ci 4631767c5feSopenharmony_ci if (BUILD_GEOCODER) 4641767c5feSopenharmony_ci add_library (geocoding STATIC ${GEOCODING_SOURCES}) 4651767c5feSopenharmony_ci target_link_libraries (geocoding ${LIBRARY_DEPS}) 4661767c5feSopenharmony_ci target_include_directories(geocoding PUBLIC $<INSTALL_INTERFACE:include>) 4671767c5feSopenharmony_ci add_dependencies (geocoding generate_geocoding_data) 4681767c5feSopenharmony_ci add_dependencies (phonenumber generate_geocoding_data) 4691767c5feSopenharmony_ci endif () 4701767c5feSopenharmony_ci 4711767c5feSopenharmony_ci if (USE_ICU_REGEXP AND USE_ALTERNATE_FORMATS) 4721767c5feSopenharmony_ci add_dependencies (phonenumber ${ALT_FORMAT_METADATA_TARGET}) 4731767c5feSopenharmony_ci endif () 4741767c5feSopenharmony_ciendif () 4751767c5feSopenharmony_ci 4761767c5feSopenharmony_ci 4771767c5feSopenharmony_ciif (BUILD_SHARED_LIBS) 4781767c5feSopenharmony_ci # Build a shared library (with -fPIC). 4791767c5feSopenharmony_ci add_library (phonenumber-shared SHARED ${SOURCES}) 4801767c5feSopenharmony_ci target_link_libraries (phonenumber-shared ${LIBRARY_DEPS}) 4811767c5feSopenharmony_ci target_include_directories(phonenumber-shared PUBLIC $<INSTALL_INTERFACE:include>) 4821767c5feSopenharmony_ci 4831767c5feSopenharmony_ci set_target_properties (phonenumber-shared 4841767c5feSopenharmony_ci PROPERTIES 4851767c5feSopenharmony_ci OUTPUT_NAME "phonenumber" 4861767c5feSopenharmony_ci PREFIX "lib" 4871767c5feSopenharmony_ci SOVERSION ${libphonenumber_VERSION_MAJOR} 4881767c5feSopenharmony_ci VERSION ${libphonenumber_VERSION_MAJOR}.${libphonenumber_VERSION_MINOR}) 4891767c5feSopenharmony_ci 4901767c5feSopenharmony_ci if (USE_ICU_REGEXP AND USE_ALTERNATE_FORMATS) 4911767c5feSopenharmony_ci add_dependencies (phonenumber-shared ${ALT_FORMAT_METADATA_TARGET}) 4921767c5feSopenharmony_ci endif () 4931767c5feSopenharmony_ci 4941767c5feSopenharmony_ci if (BUILD_GEOCODER) 4951767c5feSopenharmony_ci add_library (geocoding-shared SHARED ${GEOCODING_SOURCES}) 4961767c5feSopenharmony_ci target_link_libraries (geocoding-shared ${LIBRARY_DEPS}) 4971767c5feSopenharmony_ci target_include_directories(geocoding-shared PUBLIC $<INSTALL_INTERFACE:include>) 4981767c5feSopenharmony_ci add_dependencies (geocoding-shared generate_geocoding_data) 4991767c5feSopenharmony_ci add_dependencies (phonenumber-shared generate_geocoding_data) 5001767c5feSopenharmony_ci 5011767c5feSopenharmony_ci set_target_properties (geocoding-shared 5021767c5feSopenharmony_ci PROPERTIES 5031767c5feSopenharmony_ci OUTPUT_NAME "geocoding" 5041767c5feSopenharmony_ci PREFIX "lib" 5051767c5feSopenharmony_ci SOVERSION ${libphonenumber_VERSION_MAJOR} 5061767c5feSopenharmony_ci VERSION ${libphonenumber_VERSION_MAJOR}.${libphonenumber_VERSION_MINOR}) 5071767c5feSopenharmony_ci endif () 5081767c5feSopenharmony_ciendif () 5091767c5feSopenharmony_ci 5101767c5feSopenharmony_ci#---------------------------------------------------------------- 5111767c5feSopenharmony_ci# Build testing library 5121767c5feSopenharmony_ci#---------------------------------------------------------------- 5131767c5feSopenharmony_ci 5141767c5feSopenharmony_ciif(BUILD_TESTING) 5151767c5feSopenharmony_ci add_library (phonenumber_testing STATIC ${TESTING_LIBRARY_SOURCES}) 5161767c5feSopenharmony_ci if (BUILD_GEOCODER) 5171767c5feSopenharmony_ci add_dependencies (phonenumber_testing generate_geocoding_data) 5181767c5feSopenharmony_ci endif () 5191767c5feSopenharmony_ci target_link_libraries (phonenumber_testing ${LIBRARY_DEPS}) 5201767c5feSopenharmony_ci 5211767c5feSopenharmony_ci if (BUILD_GEOCODER) 5221767c5feSopenharmony_ci # Test geocoding data cpp files generation. 5231767c5feSopenharmony_ci set (GEOCODING_TEST_DIR "${RESOURCES_DIR}/test/geocoding") 5241767c5feSopenharmony_ci file (GLOB_RECURSE GEOCODING_TEST_SOURCES "${GEOCODING_TEST_DIR}/*.txt") 5251767c5feSopenharmony_ci 5261767c5feSopenharmony_ci set (GEOCODING_TEST_DATA_OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/test/phonenumbers/geocoding/geocoding_test_data.cc") 5271767c5feSopenharmony_ci 5281767c5feSopenharmony_ci add_custom_command ( 5291767c5feSopenharmony_ci COMMAND generate_geocoding_data "${GEOCODING_TEST_DIR}" "${GEOCODING_TEST_DATA_OUTPUT}" "_test" 5301767c5feSopenharmony_ci OUTPUT ${GEOCODING_TEST_DATA_OUTPUT} 5311767c5feSopenharmony_ci DEPENDS ${GEOCODING_TEST_SOURCES} generate_geocoding_data 5321767c5feSopenharmony_ci COMMENT "Generating geocoding test data code" 5331767c5feSopenharmony_ci ) 5341767c5feSopenharmony_ci endif () 5351767c5feSopenharmony_ci 5361767c5feSopenharmony_ci set (TEST_SOURCES 5371767c5feSopenharmony_ci "test/phonenumbers/asyoutypeformatter_test.cc" 5381767c5feSopenharmony_ci "test/phonenumbers/logger_test.cc" 5391767c5feSopenharmony_ci "test/phonenumbers/matcher_test.cc" 5401767c5feSopenharmony_ci "test/phonenumbers/phonenumberutil_test.cc" 5411767c5feSopenharmony_ci "test/phonenumbers/regexp_adapter_test.cc" 5421767c5feSopenharmony_ci "test/phonenumbers/regexp_cache_test.cc" 5431767c5feSopenharmony_ci "test/phonenumbers/run_tests.cc" 5441767c5feSopenharmony_ci "test/phonenumbers/shortnumberinfo_test.cc" 5451767c5feSopenharmony_ci "test/phonenumbers/stringutil_test.cc" 5461767c5feSopenharmony_ci "test/phonenumbers/test_util.cc" 5471767c5feSopenharmony_ci "test/phonenumbers/unicodestring_test.cc" 5481767c5feSopenharmony_ci "test/phonenumbers/utf/unicodetext_test.cc") 5491767c5feSopenharmony_ci 5501767c5feSopenharmony_ci if (BUILD_GEOCODER) 5511767c5feSopenharmony_ci set (GEOCODING_TEST_SOURCES 5521767c5feSopenharmony_ci "test/phonenumbers/geocoding/area_code_map_test.cc" 5531767c5feSopenharmony_ci "test/phonenumbers/geocoding/geocoding_data_test.cc" 5541767c5feSopenharmony_ci "test/phonenumbers/geocoding/geocoding_test_data.cc" 5551767c5feSopenharmony_ci "test/phonenumbers/geocoding/mapping_file_provider_test.cc" 5561767c5feSopenharmony_ci "test/phonenumbers/geocoding/phonenumber_offline_geocoder_test.cc") 5571767c5feSopenharmony_ci list (APPEND TEST_SOURCES ${GEOCODING_TEST_SOURCES}) 5581767c5feSopenharmony_ci endif () 5591767c5feSopenharmony_ci 5601767c5feSopenharmony_ci if (USE_ICU_REGEXP) 5611767c5feSopenharmony_ci # Add the phone number matcher tests. 5621767c5feSopenharmony_ci list (APPEND TEST_SOURCES "test/phonenumbers/phonenumbermatch_test.cc") 5631767c5feSopenharmony_ci list (APPEND TEST_SOURCES "test/phonenumbers/phonenumbermatcher_test.cc") 5641767c5feSopenharmony_ci endif () 5651767c5feSopenharmony_ci 5661767c5feSopenharmony_ci # Build the testing binary. 5671767c5feSopenharmony_ci include_directories ("test") 5681767c5feSopenharmony_ci add_executable (libphonenumber_test ${TEST_SOURCES}) 5691767c5feSopenharmony_ci set (TEST_LIBS phonenumber_testing ${GTEST_LIB}) 5701767c5feSopenharmony_ci 5711767c5feSopenharmony_ci if (NOT WIN32) 5721767c5feSopenharmony_ci list (APPEND TEST_LIBS pthread) 5731767c5feSopenharmony_ci endif () 5741767c5feSopenharmony_ci 5751767c5feSopenharmony_ci target_link_libraries (libphonenumber_test ${TEST_LIBS}) 5761767c5feSopenharmony_ci 5771767c5feSopenharmony_ci # Unfortunately add_custom_target() can't accept a single command provided as a 5781767c5feSopenharmony_ci # list of commands. 5791767c5feSopenharmony_ci if (BUILD_GEOCODER) 5801767c5feSopenharmony_ci add_custom_target (tests 5811767c5feSopenharmony_ci COMMAND generate_geocoding_data_test 5821767c5feSopenharmony_ci COMMAND libphonenumber_test 5831767c5feSopenharmony_ci DEPENDS generate_geocoding_data_test libphonenumber_test 5841767c5feSopenharmony_ci ) 5851767c5feSopenharmony_ci else () 5861767c5feSopenharmony_ci add_custom_target (tests 5871767c5feSopenharmony_ci COMMAND libphonenumber_test 5881767c5feSopenharmony_ci DEPENDS libphonenumber_test 5891767c5feSopenharmony_ci ) 5901767c5feSopenharmony_ci endif () 5911767c5feSopenharmony_ci 5921767c5feSopenharmony_ci # Build an example program using geocoding, mainly to make sure that both 5931767c5feSopenharmony_ci # libraries are built properly. 5941767c5feSopenharmony_ci if (BUILD_GEOCODER) 5951767c5feSopenharmony_ci add_executable (geocoding_test_program "test/phonenumbers/geocoding/geocoding_test_program.cc") 5961767c5feSopenharmony_ci target_link_libraries (geocoding_test_program geocoding phonenumber) 5971767c5feSopenharmony_ci endif () 5981767c5feSopenharmony_ciendif() 5991767c5feSopenharmony_ci 6001767c5feSopenharmony_ci#---------------------------------------------------------------- 6011767c5feSopenharmony_ci# Install built libraries 6021767c5feSopenharmony_ci#---------------------------------------------------------------- 6031767c5feSopenharmony_ci 6041767c5feSopenharmony_ciset (BUILT_LIBS) 6051767c5feSopenharmony_ciset(targets_export_name "${PROJECT_NAME}-targets") 6061767c5feSopenharmony_ci 6071767c5feSopenharmony_ciif (BUILD_STATIC_LIB) 6081767c5feSopenharmony_ci list (APPEND BUILT_LIBS phonenumber) 6091767c5feSopenharmony_ci if (BUILD_GEOCODER) 6101767c5feSopenharmony_ci list (APPEND BUILT_LIBS geocoding) 6111767c5feSopenharmony_ci endif() 6121767c5feSopenharmony_ciendif() 6131767c5feSopenharmony_ci 6141767c5feSopenharmony_ciif (BUILD_SHARED_LIBS) 6151767c5feSopenharmony_ci list (APPEND BUILT_LIBS phonenumber-shared) 6161767c5feSopenharmony_ci if (BUILD_GEOCODER) 6171767c5feSopenharmony_ci list (APPEND BUILT_LIBS geocoding-shared) 6181767c5feSopenharmony_ci endif() 6191767c5feSopenharmony_ciendif() 6201767c5feSopenharmony_ci 6211767c5feSopenharmony_ciinstall ( 6221767c5feSopenharmony_ci TARGETS ${BUILT_LIBS} 6231767c5feSopenharmony_ci EXPORT "${targets_export_name}" 6241767c5feSopenharmony_ci LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" 6251767c5feSopenharmony_ci ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") 6261767c5feSopenharmony_ci 6271767c5feSopenharmony_ci#---------------------------------------------------------------- 6281767c5feSopenharmony_ci# Install headers 6291767c5feSopenharmony_ci#---------------------------------------------------------------- 6301767c5feSopenharmony_ci 6311767c5feSopenharmony_ciinstall (FILES 6321767c5feSopenharmony_ci "src/phonenumbers/asyoutypeformatter.h" 6331767c5feSopenharmony_ci "src/phonenumbers/callback.h" 6341767c5feSopenharmony_ci "src/phonenumbers/logger.h" 6351767c5feSopenharmony_ci "src/phonenumbers/matcher_api.h" 6361767c5feSopenharmony_ci "src/phonenumbers/phonenumber.pb.h" 6371767c5feSopenharmony_ci "src/phonenumbers/phonemetadata.pb.h" 6381767c5feSopenharmony_ci "src/phonenumbers/phonenumberutil.h" 6391767c5feSopenharmony_ci "src/phonenumbers/regexp_adapter.h" 6401767c5feSopenharmony_ci "src/phonenumbers/regexp_cache.h" 6411767c5feSopenharmony_ci "src/phonenumbers/region_code.h" 6421767c5feSopenharmony_ci "src/phonenumbers/shortnumberinfo.h" 6431767c5feSopenharmony_ci "src/phonenumbers/unicodestring.h" 6441767c5feSopenharmony_ci DESTINATION include/phonenumbers/ 6451767c5feSopenharmony_ci) 6461767c5feSopenharmony_ci 6471767c5feSopenharmony_ciinstall (FILES "src/phonenumbers/utf/unicodetext.h" 6481767c5feSopenharmony_ci DESTINATION include/phonenumbers/utf/) 6491767c5feSopenharmony_ci 6501767c5feSopenharmony_ciif (USE_ICU_REGEXP) 6511767c5feSopenharmony_ci # Install the phone number matcher headers. 6521767c5feSopenharmony_ci install (FILES 6531767c5feSopenharmony_ci "src/phonenumbers/phonenumbermatch.h" 6541767c5feSopenharmony_ci "src/phonenumbers/phonenumbermatcher.h" 6551767c5feSopenharmony_ci "src/phonenumbers/regexp_adapter.h" 6561767c5feSopenharmony_ci DESTINATION include/phonenumbers/ 6571767c5feSopenharmony_ci ) 6581767c5feSopenharmony_ciendif () 6591767c5feSopenharmony_ci 6601767c5feSopenharmony_ciif (BUILD_GEOCODER) 6611767c5feSopenharmony_ci install (FILES 6621767c5feSopenharmony_ci "src/phonenumbers/geocoding/phonenumber_offline_geocoder.h" 6631767c5feSopenharmony_ci DESTINATION include/phonenumbers/geocoding 6641767c5feSopenharmony_ci ) 6651767c5feSopenharmony_ciendif () 6661767c5feSopenharmony_ci 6671767c5feSopenharmony_ciinstall ( 6681767c5feSopenharmony_ci FILES 6691767c5feSopenharmony_ci "src/phonenumbers/base/basictypes.h" 6701767c5feSopenharmony_ci "src/phonenumbers/base/template_util.h" 6711767c5feSopenharmony_ci "src/phonenumbers/base/logging.h" 6721767c5feSopenharmony_ci "src/phonenumbers/base/thread_checker.h" 6731767c5feSopenharmony_ci DESTINATION include/phonenumbers/base/ 6741767c5feSopenharmony_ci) 6751767c5feSopenharmony_ci 6761767c5feSopenharmony_ciinstall (FILES 6771767c5feSopenharmony_ci "src/phonenumbers/base/memory/scoped_ptr.h" 6781767c5feSopenharmony_ci "src/phonenumbers/base/memory/singleton.h" 6791767c5feSopenharmony_ci "src/phonenumbers/base/memory/singleton_boost.h" 6801767c5feSopenharmony_ci "src/phonenumbers/base/memory/singleton_posix.h" 6811767c5feSopenharmony_ci "src/phonenumbers/base/memory/singleton_stdmutex.h" 6821767c5feSopenharmony_ci "src/phonenumbers/base/memory/singleton_unsafe.h" 6831767c5feSopenharmony_ci "src/phonenumbers/base/memory/singleton_win32.h" 6841767c5feSopenharmony_ci DESTINATION include/phonenumbers/base/memory/ 6851767c5feSopenharmony_ci) 6861767c5feSopenharmony_ci 6871767c5feSopenharmony_ciinstall (FILES 6881767c5feSopenharmony_ci "src/phonenumbers/base/synchronization/lock.h" 6891767c5feSopenharmony_ci "src/phonenumbers/base/synchronization/lock_boost.h" 6901767c5feSopenharmony_ci "src/phonenumbers/base/synchronization/lock_posix.h" 6911767c5feSopenharmony_ci "src/phonenumbers/base/synchronization/lock_stdmutex.h" 6921767c5feSopenharmony_ci "src/phonenumbers/base/synchronization/lock_unsafe.h" 6931767c5feSopenharmony_ci "src/phonenumbers/base/synchronization/lock_win32.h" 6941767c5feSopenharmony_ci DESTINATION include/phonenumbers/base/synchronization/) 6951767c5feSopenharmony_ci 6961767c5feSopenharmony_ci#---------------------------------------------------------------- 6971767c5feSopenharmony_ci# Build and install cmake config files 6981767c5feSopenharmony_ci#---------------------------------------------------------------- 6991767c5feSopenharmony_ci 7001767c5feSopenharmony_ciinclude(CMakePackageConfigHelpers) 7011767c5feSopenharmony_ci 7021767c5feSopenharmony_ciset(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") 7031767c5feSopenharmony_ciset(version_config "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake") 7041767c5feSopenharmony_ciset(project_config "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake") 7051767c5feSopenharmony_ci 7061767c5feSopenharmony_ci# libphonenumber-config-version.cmake 7071767c5feSopenharmony_ciwrite_basic_package_version_file("${version_config}" COMPATIBILITY SameMajorVersion) 7081767c5feSopenharmony_ci 7091767c5feSopenharmony_ci# libphonenumber-config.cmake 7101767c5feSopenharmony_ciconfigure_package_config_file("cmake/config.cmake.in" "${project_config}" INSTALL_DESTINATION "${config_install_dir}") 7111767c5feSopenharmony_ci 7121767c5feSopenharmony_ciinstall(FILES "${project_config}" "${version_config}" DESTINATION "${config_install_dir}") 7131767c5feSopenharmony_ciinstall(EXPORT "${targets_export_name}" NAMESPACE ${PROJECT_NAME}:: DESTINATION "${config_install_dir}") 7141767c5feSopenharmony_ci 7151767c5feSopenharmony_ci#---------------------------------------------------------------- 7161767c5feSopenharmony_ci# Build an RPM 7171767c5feSopenharmony_ci#---------------------------------------------------------------- 7181767c5feSopenharmony_ci 7191767c5feSopenharmony_ciset (CPACK_PACKAGE_VERSION ${libphonenumber_VERSION_MAJOR}.${libphonenumber_VERSION_MINOR}.${libphonenumber_VERSION_PATCH}) 7201767c5feSopenharmony_ciset (CPACK_GENERATOR "RPM") 7211767c5feSopenharmony_ciset (CPACK_PACKAGE_NAME "libphonenumber") 7221767c5feSopenharmony_ciset (CPACK_RPM_PACKAGE_RELEASE 1) 7231767c5feSopenharmony_ciset (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Google's phone number handling library") 7241767c5feSopenharmony_ciif (32BIT) 7251767c5feSopenharmony_ci set (CPACK_RPM_PACKAGE_ARCHITECTURE i686) 7261767c5feSopenharmony_cielse () 7271767c5feSopenharmony_ci set (CPACK_RPM_PACKAGE_ARCHITECTURE x86_64) 7281767c5feSopenharmony_ciendif () 7291767c5feSopenharmony_ciset (CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}") 7301767c5feSopenharmony_ciinclude (CPack) 731