Browse Source

TOOLS: Update CMakeLists to auto-generate metadata for C++.

pull/567/head
Philip Liard 15 years ago
committed by Mihaela Rosca
parent
commit
1e9666d505
1 changed files with 54 additions and 2 deletions
  1. +54
    -2
      cpp/CMakeLists.txt

+ 54
- 2
cpp/CMakeLists.txt View File

@ -79,6 +79,9 @@ check_library_version (PC_ICU icui18n 4.4)
find_required_program (PROTOC protoc
"Google Protocol Buffers compiler (protoc)")
find_required_program (JAVA java
"Java Runtime Environment")
# Add protoc (Protocol Buffers compiler) target.
set (RESOURCES_DIR "${CMAKE_SOURCE_DIR}/../resources")
@ -109,6 +112,55 @@ add_custom_target (
COMMENT "Generating Protocol Buffers code"
)
# Add metadata code generation targets.
# This function is invoked twice to create metadata & test metadata code
# generation targets.
function (add_metadata_gen_target TARGET_NAME
XML_FILE
FOR_TESTING)
if (${FOR_TESTING} STREQUAL "true")
set (GEN_OUTPUT_PREFIX "${CMAKE_SOURCE_DIR}/src/metadata")
elseif (${FOR_TESTING} STREQUAL "false")
set (GEN_OUTPUT_PREFIX "${CMAKE_SOURCE_DIR}/src/test_metadata")
else ()
message (FATAL_ERROR
"Unexpected value '${FOR_TESTING}' for testing parameter")
endif ()
set (GEN_OUTPUT "${GEN_OUTPUT_PREFIX}.cc ${GEN_OUTPUT_PREFIX}.h")
set (JAR_PATH "${CMAKE_SOURCE_DIR}/../tools/java/cpp-build/target")
set (JAR_PATH "${JAR_PATH}/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar")
add_custom_command (
COMMAND ${JAVA_BIN} -jar
${JAR_PATH} BuildMetadataCppFromXml ${XML_FILE} ${CMAKE_SOURCE_DIR}/src
${FOR_TESTING}
OUTPUT ${GEN_OUTPUT}
DEPENDS ${XML_FILE}
)
add_custom_target (
${TARGET_NAME}
DEPENDS ${GEN_OUTPUT}
COMMENT "Generating Metadata code"
)
endfunction (add_metadata_gen_target)
# Add metadata generation target.
add_metadata_gen_target (
"generate-metadata"
"${RESOURCES_DIR}/PhoneNumberMetaData.xml"
"false"
)
# Add test metadata generation target.
add_metadata_gen_target (
"generate-test-metadata"
"${RESOURCES_DIR}/PhoneNumberMetaDataForTesting.xml"
"true"
)
# Platform independent sources.
set (
SOURCES
@ -119,7 +171,7 @@ set (
"src/base/threading/thread_restrictions.cc"
"src/default_logger.cc"
"src/logger_adapter.cc"
"src/metadata.cc"
"src/metadata.cc" # Generated by build tools.
"src/phonemetadata.pb.cc" # Generated by Protocol Buffers.
"src/phonenumber.cc"
"src/phonenumber.pb.cc" # Generated by Protocol Buffers.
@ -181,7 +233,7 @@ set (TEST_SOURCES
"src/re2_cache_test.cc"
"src/run_tests.cc"
"src/stringutil_test.cc"
"src/test_metadata.cc"
"src/test_metadata.cc" # Generated by build tools.
)
add_executable (libphonenumber_test ${TEST_SOURCES})


Loading…
Cancel
Save