@@ -299,22 +299,29 @@ endif ()
299299# at least one .o file). Unfortunately INTERFACE libraries are a bit weird in
300300# that they need absolute paths for their sources.
301301add_library (google_cloud_cpp_spanner_mocks INTERFACE )
302- target_sources (
303- google_cloud_cpp_spanner_mocks
304- INTERFACE
305- ${CMAKE_CURRENT_SOURCE_DIR} /admin/mocks/mock_database_admin_connection.h
306- ${CMAKE_CURRENT_SOURCE_DIR} /admin/mocks/mock_instance_admin_connection.h
307- ${CMAKE_CURRENT_SOURCE_DIR} /mocks/mock_database_admin_connection.h
308- ${CMAKE_CURRENT_SOURCE_DIR} /mocks/mock_instance_admin_connection.h
309- ${CMAKE_CURRENT_SOURCE_DIR} /mocks/mock_spanner_connection.h
310- ${CMAKE_CURRENT_SOURCE_DIR} /mocks/row.h )
302+ set (google_cloud_cpp_spanner_mocks_hdrs
303+ # cmake-format: sort
304+ admin/mocks/mock_database_admin_connection.h
305+ admin/mocks/mock_instance_admin_connection.h
306+ mocks/mock_database_admin_connection.h
307+ mocks/mock_instance_admin_connection.h
308+ mocks/mock_spanner_connection.h
309+ mocks/row.h)
310+ export_list_to_bazel ("google_cloud_cpp_spanner_mocks.bzl"
311+ google_cloud_cpp_spanner_mocks_hdrs YEAR "2019" )
312+ foreach (file IN LISTS google_cloud_cpp_spanner_mocks_hdrs)
313+ # We use a generator expression per the recommendation in:
314+ # https://stackoverflow.com/a/62465051
315+ list (APPEND mock_files
316+ "$<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /${file} >" )
317+ endforeach ()
318+ target_sources (google_cloud_cpp_spanner_mocks INTERFACE ${mock_files} )
311319target_link_libraries (
312320 google_cloud_cpp_spanner_mocks
313321 INTERFACE google-cloud-cpp::spanner GTest::gmock_main GTest::gmock
314322 GTest::gtest )
315323set_target_properties (google_cloud_cpp_spanner_mocks
316324 PROPERTIES EXPORT_NAME google-cloud-cpp::spanner_mocks )
317- create_bazel_config (google_cloud_cpp_spanner_mocks YEAR "2019" )
318325target_include_directories (
319326 google_cloud_cpp_spanner_mocks
320327 INTERFACE $<BUILD_INTERFACE :${PROJECT_SOURCE_DIR} >
@@ -540,8 +547,6 @@ install(
540547
541548google_cloud_cpp_install_headers ("google_cloud_cpp_spanner"
542549 "include/google/cloud/spanner" )
543- google_cloud_cpp_install_headers ("google_cloud_cpp_spanner_mocks"
544- "include/google/cloud/spanner" )
545550
546551google_cloud_cpp_add_pkgconfig (
547552 spanner
@@ -570,3 +575,5 @@ install(
570575 "${CMAKE_CURRENT_BINARY_DIR} /google_cloud_cpp_spanner-config-version.cmake"
571576 DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/google_cloud_cpp_spanner"
572577 COMPONENT google_cloud_cpp_development)
578+
579+ google_cloud_cpp_install_mocks (spanner "Google Cloud Spanner" )
0 commit comments