@@ -45,6 +45,7 @@ option(NANOARROW_DEVICE_WITH_CUDA "Build CUDA libraries" OFF)
45
45
# Development options
46
46
option (NANOARROW_BUILD_APPS "Build utility applications" OFF )
47
47
option (NANOARROW_BUILD_TESTS "Build tests" OFF )
48
+ option (NANOARROW_BUILD_TESTS_WITH_ARROW "Build tests that require Arrow" OFF )
48
49
option (NANOARROW_BUILD_BENCHMARKS "Build benchmarks" OFF )
49
50
option (NANOARROW_BUILD_INTEGRATION_TESTS
50
51
"Build cross-implementation Arrow integration tests" OFF )
@@ -422,26 +423,28 @@ if(NANOARROW_BUILD_TESTS)
422
423
)
423
424
include (CTest)
424
425
425
- find_package (Arrow REQUIRED)
426
- message (STATUS "Arrow version: ${ARROW_VERSION} " )
427
- message (STATUS "Arrow SO version: ${ARROW_FULL_SO_VERSION} " )
426
+ if (NANOARROW_BUILD_TESTS_WITH_ARROW)
427
+ find_package (Arrow REQUIRED)
428
+ message (STATUS "Arrow version: ${ARROW_VERSION} " )
429
+ message (STATUS "Arrow SO version: ${ARROW_FULL_SO_VERSION} " )
428
430
429
- # Give caller the option to link a static version of Arrow C++
430
- if (NANOARROW_ARROW_STATIC)
431
- set (NANOARROW_ARROW_TARGET arrow_static)
432
- else ()
433
- set (NANOARROW_ARROW_TARGET arrow_shared)
434
- endif ()
431
+ # Give caller the option to link a static version of Arrow C++
432
+ if (NANOARROW_ARROW_STATIC)
433
+ set (NANOARROW_ARROW_TARGET arrow_static)
434
+ else ()
435
+ set (NANOARROW_ARROW_TARGET arrow_shared)
436
+ endif ()
435
437
436
- # Arrow >= 10.0.0 requires C++17; GTest requires C++11.
437
- # Leave the option open to use an older version of Arrow
438
- # to make it easier to test on old Linux (e.g., Centos7)
439
- if (${ARROW_VERSION} VERSION_GREATER_EQUAL "10.0.0" )
440
- set (CMAKE_CXX_STANDARD 17)
441
- else ()
442
- set (CMAKE_CXX_STANDARD 11)
438
+ # Arrow >= 10.0.0 requires C++17; GTest requires C++11.
439
+ # Leave the option open to use an older version of Arrow
440
+ # to make it easier to test on old Linux (e.g., Centos7)
441
+ if (${ARROW_VERSION} VERSION_GREATER_EQUAL "10.0.0" )
442
+ set (CMAKE_CXX_STANDARD 17)
443
+ else ()
444
+ set (CMAKE_CXX_STANDARD 11)
445
+ endif ()
446
+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
443
447
endif ()
444
- set (CMAKE_CXX_STANDARD_REQUIRED ON )
445
448
446
449
add_subdirectory ("thirdparty/googletest" )
447
450
@@ -517,6 +520,27 @@ if(NANOARROW_BUILD_TESTS)
517
520
gmock_main
518
521
nanoarrow_coverage_config)
519
522
523
+ list (APPEND
524
+ NanoarrowTests
525
+ utils_test
526
+ buffer_test
527
+ array_test
528
+ schema_test
529
+ array_stream_test
530
+ nanoarrow_testing_test
531
+ c_data_integration_test
532
+ hpp_array_stream
533
+ hpp_buffer
534
+ hpp_exception
535
+ hpp_unique
536
+ hpp_view)
537
+ if (Arrow_FOUND)
538
+ foreach (test_target ${NanoarrowTests} )
539
+ target_compile_definitions (${test_target}
540
+ PRIVATE -DNANOARROW_BUILD_TESTS_WITH_ARROW)
541
+ endforeach ()
542
+ endif ()
543
+
520
544
include (GoogleTest)
521
545
# Some users have reported a timeout with the default value of 5
522
546
# Building with -DBUILD_SHARED_LIBS=ON may also help reduce the size of test
@@ -569,6 +593,11 @@ if(NANOARROW_BUILD_TESTS)
569
593
target_link_libraries (nanoarrow_ipc_${name} _test flatccrt)
570
594
endif ()
571
595
596
+ if (Arrow_FOUND)
597
+ target_compile_definitions (nanoarrow_ipc_${name} _test
598
+ PRIVATE -DNANOARROW_BUILD_TESTS_WITH_ARROW)
599
+ endif ()
600
+
572
601
gtest_discover_tests(nanoarrow_ipc_${name} _test)
573
602
endforeach ()
574
603
@@ -593,6 +622,13 @@ if(NANOARROW_BUILD_TESTS)
593
622
gtest_main
594
623
nanoarrow_coverage_config)
595
624
625
+ if (Arrow_FOUND)
626
+ target_compile_definitions (nanoarrow_device_test
627
+ PRIVATE -DNANOARROW_BUILD_TESTS_WITH_ARROW)
628
+ target_compile_definitions (nanoarrow_device_hpp_test
629
+ PRIVATE -DNANOARROW_BUILD_TESTS_WITH_ARROW)
630
+ endif ()
631
+
596
632
include (GoogleTest)
597
633
gtest_discover_tests(nanoarrow_device_test)
598
634
gtest_discover_tests(nanoarrow_device_hpp_test)
@@ -604,6 +640,10 @@ if(NANOARROW_BUILD_TESTS)
604
640
nanoarrow
605
641
gtest_main
606
642
nanoarrow_coverage_config)
643
+ if (Arrow_FOUND)
644
+ target_compile_definitions (nanoarrow_device_metal_test
645
+ PRIVATE -DNANOARROW_BUILD_TESTS_WITH_ARROW)
646
+ endif ()
607
647
gtest_discover_tests(nanoarrow_device_metal_test)
608
648
endif ()
609
649
@@ -615,6 +655,10 @@ if(NANOARROW_BUILD_TESTS)
615
655
CUDA::cuda_driver
616
656
gtest_main
617
657
nanoarrow_coverage_config)
658
+ if (Arrow_FOUND)
659
+ target_compile_definitions (nanoarrow_device_cuda_test
660
+ PRIVATE -DNANOARROW_BUILD_TESTS_WITH_ARROW)
661
+ endif ()
618
662
gtest_discover_tests(nanoarrow_device_cuda_test)
619
663
endif ()
620
664
endif ()
0 commit comments