@@ -241,34 +241,24 @@ set(GOOGLE_CLOUD_CPP_COMPUTE_LIBRARIES
241241 "compute_region_operations"
242242 "compute_zone_operations" )
243243
244- list (FIND GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES "compute"
245- compute_experimental)
246- if (NOT compute_experimental EQUAL -1)
247- list (REMOVE_ITEM GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES "compute" )
248- list (APPEND GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES
249- ${GOOGLE_CLOUD_CPP_COMPUTE_LIBRARIES} )
250- list (SORT GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES)
251- endif ()
252-
253- list (FIND GOOGLE_CLOUD_CPP_TRANSITION_LIBRARIES "compute" compute_transition)
254- if (NOT compute_transition EQUAL -1)
255- list (REMOVE_ITEM GOOGLE_CLOUD_CPP_TRANSITION_LIBRARIES "compute" )
256- list (APPEND GOOGLE_CLOUD_CPP_TRANSITION_LIBRARIES
257- ${GOOGLE_CLOUD_CPP_COMPUTE_LIBRARIES} )
258- list (SORT GOOGLE_CLOUD_CPP_TRANSITION_LIBRARIES)
259- endif ()
260-
261- list (FIND GOOGLE_CLOUD_CPP_GA_LIBRARIES "compute" compute_ga)
262- if (NOT compute_ga EQUAL -1)
263- list (REMOVE_ITEM GOOGLE_CLOUD_CPP_GA_LIBRARIES "compute" )
264- list (APPEND GOOGLE_CLOUD_CPP_GA_LIBRARIES
265- ${GOOGLE_CLOUD_CPP_COMPUTE_LIBRARIES} )
266- list (SORT GOOGLE_CLOUD_CPP_GA_LIBRARIES)
267- endif ()
244+ # Use a function to get a new scope, so the GOOGLE_CLOUD_CPP_*_LIBRARIES remain
245+ # unchanged.
246+ function (export_libraries_bzl )
247+ foreach (stage IN ITEMS EXPERIMENTAL TRANSITION GA)
248+ set (var "GOOGLE_CLOUD_CPP_${stage} _LIBRARIES" )
249+ if (NOT "compute" IN_LIST ${var} )
250+ continue ()
251+ endif ()
252+ list (REMOVE_ITEM ${var} "compute" )
253+ list (APPEND ${var} ${GOOGLE_CLOUD_CPP_COMPUTE_LIBRARIES} )
254+ list (SORT ${var} )
255+ endforeach ()
268256
269- export_list_to_bazel (
270- "libraries.bzl" YEAR 2023 GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES
271- GOOGLE_CLOUD_CPP_TRANSITION_LIBRARIES GOOGLE_CLOUD_CPP_GA_LIBRARIES )
257+ export_list_to_bazel (
258+ "libraries.bzl" YEAR 2023 GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES
259+ GOOGLE_CLOUD_CPP_TRANSITION_LIBRARIES GOOGLE_CLOUD_CPP_GA_LIBRARIES )
260+ endfunction ()
261+ export_libraries_bzl ()
272262
273263# ~~~
274264# Handle the dependencies between features. That is, if feature "X" is enabled
@@ -294,11 +284,17 @@ macro (google_cloud_cpp_enable_deps)
294284 set (GOOGLE_CLOUD_CPP_ENABLE_GRPC ON )
295285 set (GOOGLE_CLOUD_CPP_ENABLE_REST ON )
296286 endif ()
287+ if (compute IN_LIST GOOGLE_CLOUD_CPP_ENABLE)
288+ list (APPEND GOOGLE_CLOUD_CPP_ENABLE
289+ ${GOOGLE_CLOUD_CPP_COMPUTE_LIBRARIES} )
290+ list (REMOVE_ITEM GOOGLE_CLOUD_CPP_ENABLE "compute" )
291+ endif ()
297292 set (disabled_features ${GOOGLE_CLOUD_CPP_ENABLE} )
298293 list (FILTER disabled_features INCLUDE REGEX "^-" )
299294 foreach (disabled IN LISTS disabled_features)
300295 if (disabled STREQUAL "-compute" )
301296 list (FILTER GOOGLE_CLOUD_CPP_ENABLE EXCLUDE REGEX "^compute_.*" )
297+ list (REMOVE_ITEM GOOGLE_CLOUD_CPP_ENABLE "compute" )
302298 continue ()
303299 endif ()
304300 string (SUBSTRING "${disabled} " 1 -1 feature)
0 commit comments