kou commented on code in PR #45824: URL: https://github.com/apache/arrow/pull/45824#discussion_r2002473062
########## cpp/src/arrow/util/meson.build: ########## @@ -92,3 +92,242 @@ configure_file( configuration: internal_conf_data, format: 'cmake@', ) + +install_headers( + [ + 'algorithm.h', + 'aligned_storage.h', + 'align_util.h', + 'async_generator_fwd.h', + 'async_generator.h', + 'async_util.h', + 'base64.h', + 'basic_decimal.h', + 'benchmark_util.h', + 'binary_view_util.h', + 'bit_block_counter.h', + 'bitmap_builders.h', + 'bitmap_generate.h', + 'bitmap.h', + 'bitmap_ops.h', + 'bitmap_reader.h', + 'bitmap_visit.h', + 'bitmap_writer.h', + 'bit_run_reader.h', + 'bitset_stack.h', + 'bit_util.h', + 'bpacking64_default.h', + 'bpacking_avx2.h', + 'bpacking_avx512.h', + 'bpacking_default.h', + 'bpacking.h', + 'bpacking_neon.h', + 'byte_size.h', + 'cancel.h', + 'checked_cast.h', + 'compare.h', + 'compression.h', + 'concurrent_map.h', + 'converter.h', + 'counting_semaphore.h', + 'cpu_info.h', + 'crc32.h', + 'debug.h', + 'decimal.h', + 'delimiting.h', + 'dict_util.h', + 'dispatch.h', + 'double_conversion.h', + 'endian.h', + 'float16.h', + 'formatting.h', + 'functional.h', + 'future.h', + 'hashing.h', + 'hash_util.h', + 'int_util.h', + 'int_util_overflow.h', + 'io_util.h', + 'iterator.h', + 'key_value_metadata.h', + 'launder.h', + 'list_util.h', + 'logger.h', + 'logging.h', + 'macros.h', + 'map.h', + 'math_constants.h', + 'memory.h', + 'mutex.h', + 'parallel.h', + 'pcg_random.h', + 'prefetch.h', + 'print.h', + 'queue.h', + 'range.h', + 'ree_util.h', + 'regex.h', + 'rows_to_batches.h', + 'simd.h', + 'small_vector.h', + 'sort.h', + 'spaced.h', + 'span.h', + 'stopwatch.h', + 'string_builder.h', + 'string.h', + 'task_group.h', + 'tdigest.h', + 'test_common.h', + 'thread_pool.h', + 'time.h', + 'tracing.h', + 'trie.h', + 'type_fwd.h', + 'type_traits.h', + 'ubsan.h', + 'union_util.h', + 'unreachable.h', + 'uri.h', + 'utf8.h', + 'value_parsing.h', + 'vector.h', + 'visibility.h', + 'windows_compatibility.h', + 'windows_fixup.h', + ], + subdir: 'arrow/util', +) + +utility_test_srcs = [ + 'align_util_test.cc', + 'atfork_test.cc', + 'byte_size_test.cc', + 'byte_stream_split_test.cc', + 'cache_test.cc', + 'checked_cast_test.cc', + 'compression_test.cc', + 'decimal_test.cc', + 'float16_test.cc', + 'fixed_width_test.cc', + 'formatting_util_test.cc', + 'key_value_metadata_test.cc', + 'hashing_test.cc', + 'int_util_test.cc', + 'io_util_test.cc', + 'iterator_test.cc', + 'list_util_test.cc', + 'logger_test.cc', + 'logging_test.cc', + 'math_test.cc', + 'queue_test.cc', + 'range_test.cc', + 'ree_util_test.cc', + 'reflection_test.cc', + 'rows_to_batches_test.cc', + 'small_vector_test.cc', + 'span_test.cc', + 'stl_util_test.cc', + 'string_test.cc', + 'tdigest_test.cc', + 'test_common.cc', + 'time_test.cc', + 'tracing_test.cc', + 'trie_test.cc', + 'uri_test.cc', + 'utf8_util_test.cc', + 'value_parsing_test.cc', +] + +if host_machine.system() == 'windows' + # This manifest enables long file paths on Windows 10+ + # See https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#enable-long-paths-in-windows-10-version-1607-and-later + if cpp_compiler.get_id() == 'msvc' + utility_test_sources += ['io_util_test.manifest'] + else + utility_test_sources += ['io_util_test.rc'] + endif +endif + +exc = executable( + 'arrow-utility-test', + sources: utility_test_srcs, + dependencies: [arrow_dep, filesystem_dep, gtest_dep, gmock_dep], + link_with: [arrow_test_lib], + implicit_include_directories: false, +) +test('arrow-utility-test', exc) + +util_tests = { + 'arrow-async-utility-test': { + 'sources': [ + 'async_generator_test.cc', + 'async_util_test.cc', + 'test_common.cc', + ], + }, + 'arrow-bit-utility-test': { + 'sources': [ + 'bit_block_counter_test.cc', + 'bit_util_test.cc', + 'rle_encoding_test.cc', + ], + }, + 'arrow-threading-utility-test': { + 'sources': [ + 'cancel_test.cc', + 'counting_semaphore_test.cc', + 'future_test.cc', + 'task_group_test.cc', + 'test_common.cc', + 'thread_pool_test.cc', + ], + }, + 'arrow-crc32-test': { + 'sources': ['crc32_test.cc'], + 'dependencies': [filesystem_dep], + }, +} + +if needs_tests Review Comment: If we need this here, we need it for `test('arrow-utility-test', exc)` too? It seems that we don't need both `arrow_test_dep` and `arrow_testing_dep`. Can we use this instead? ```meson if needs_tests arrow_test_dep = declare_dependency( link_with: [arrow_test_lib], dependencies: [arrow_dep, filesystem_dep, gmock_dep, gtest_main_dep], ) else arrow_test_dep = disabler() endif ``` ########## cpp/src/arrow/util/meson.build: ########## @@ -92,3 +92,242 @@ configure_file( configuration: internal_conf_data, format: 'cmake@', ) + +install_headers( + [ + 'algorithm.h', + 'aligned_storage.h', + 'align_util.h', + 'async_generator_fwd.h', + 'async_generator.h', + 'async_util.h', + 'base64.h', + 'basic_decimal.h', + 'benchmark_util.h', + 'binary_view_util.h', + 'bit_block_counter.h', + 'bitmap_builders.h', + 'bitmap_generate.h', + 'bitmap.h', + 'bitmap_ops.h', + 'bitmap_reader.h', + 'bitmap_visit.h', + 'bitmap_writer.h', + 'bit_run_reader.h', + 'bitset_stack.h', + 'bit_util.h', + 'bpacking64_default.h', + 'bpacking_avx2.h', + 'bpacking_avx512.h', + 'bpacking_default.h', + 'bpacking.h', + 'bpacking_neon.h', + 'byte_size.h', + 'cancel.h', + 'checked_cast.h', + 'compare.h', + 'compression.h', + 'concurrent_map.h', + 'converter.h', + 'counting_semaphore.h', + 'cpu_info.h', + 'crc32.h', + 'debug.h', + 'decimal.h', + 'delimiting.h', + 'dict_util.h', + 'dispatch.h', + 'double_conversion.h', + 'endian.h', + 'float16.h', + 'formatting.h', + 'functional.h', + 'future.h', + 'hashing.h', + 'hash_util.h', + 'int_util.h', + 'int_util_overflow.h', + 'io_util.h', + 'iterator.h', + 'key_value_metadata.h', + 'launder.h', + 'list_util.h', + 'logger.h', + 'logging.h', + 'macros.h', + 'map.h', + 'math_constants.h', + 'memory.h', + 'mutex.h', + 'parallel.h', + 'pcg_random.h', + 'prefetch.h', + 'print.h', + 'queue.h', + 'range.h', + 'ree_util.h', + 'regex.h', + 'rows_to_batches.h', + 'simd.h', + 'small_vector.h', + 'sort.h', + 'spaced.h', + 'span.h', + 'stopwatch.h', + 'string_builder.h', + 'string.h', + 'task_group.h', + 'tdigest.h', + 'test_common.h', + 'thread_pool.h', + 'time.h', + 'tracing.h', + 'trie.h', + 'type_fwd.h', + 'type_traits.h', + 'ubsan.h', + 'union_util.h', + 'unreachable.h', + 'uri.h', + 'utf8.h', + 'value_parsing.h', + 'vector.h', + 'visibility.h', + 'windows_compatibility.h', + 'windows_fixup.h', + ], + subdir: 'arrow/util', +) + +utility_test_srcs = [ + 'align_util_test.cc', + 'atfork_test.cc', + 'byte_size_test.cc', + 'byte_stream_split_test.cc', + 'cache_test.cc', + 'checked_cast_test.cc', + 'compression_test.cc', + 'decimal_test.cc', + 'float16_test.cc', + 'fixed_width_test.cc', + 'formatting_util_test.cc', + 'key_value_metadata_test.cc', + 'hashing_test.cc', + 'int_util_test.cc', + 'io_util_test.cc', + 'iterator_test.cc', + 'list_util_test.cc', + 'logger_test.cc', + 'logging_test.cc', + 'math_test.cc', + 'queue_test.cc', + 'range_test.cc', + 'ree_util_test.cc', + 'reflection_test.cc', + 'rows_to_batches_test.cc', + 'small_vector_test.cc', + 'span_test.cc', + 'stl_util_test.cc', + 'string_test.cc', + 'tdigest_test.cc', + 'test_common.cc', + 'time_test.cc', + 'tracing_test.cc', + 'trie_test.cc', + 'uri_test.cc', + 'utf8_util_test.cc', + 'value_parsing_test.cc', +] + +if host_machine.system() == 'windows' + # This manifest enables long file paths on Windows 10+ + # See https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#enable-long-paths-in-windows-10-version-1607-and-later + if cpp_compiler.get_id() == 'msvc' + utility_test_sources += ['io_util_test.manifest'] + else + utility_test_sources += ['io_util_test.rc'] + endif +endif + +exc = executable( + 'arrow-utility-test', + sources: utility_test_srcs, + dependencies: [arrow_dep, filesystem_dep, gtest_dep, gmock_dep], + link_with: [arrow_test_lib], + implicit_include_directories: false, +) +test('arrow-utility-test', exc) + +util_tests = { + 'arrow-async-utility-test': { + 'sources': [ + 'async_generator_test.cc', + 'async_util_test.cc', + 'test_common.cc', + ], + }, + 'arrow-bit-utility-test': { + 'sources': [ + 'bit_block_counter_test.cc', + 'bit_util_test.cc', + 'rle_encoding_test.cc', + ], + }, + 'arrow-threading-utility-test': { + 'sources': [ + 'cancel_test.cc', + 'counting_semaphore_test.cc', + 'future_test.cc', + 'task_group_test.cc', + 'test_common.cc', + 'thread_pool_test.cc', + ], + }, + 'arrow-crc32-test': { + 'sources': ['crc32_test.cc'], + 'dependencies': [filesystem_dep], + }, +} + +if needs_tests + foreach key, val : util_tests + exc = executable( + key, + sources: val['sources'], + dependencies: [arrow_test_dep, val.get('dependencies', [])], Review Comment: Ah, `arrow_test_dep` doesn't link to only `libarrow_testing.so`. Then can we remove `filesystem_dep` from `arrow-crc32-test` dependencies? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org