draco_tests.cmake 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. if(DRACO_CMAKE_DRACO_TESTS_CMAKE)
  2. return()
  3. endif()
  4. set(DRACO_CMAKE_DRACO_TESTS_CMAKE 1)
  5. # The factory tests are in a separate target to avoid breaking tests that rely
  6. # on file I/O via the factories. The fake reader and writer implementations
  7. # interfere with normal file I/O function.
  8. set(draco_factory_test_sources
  9. "${draco_src_root}/io/file_reader_factory_test.cc"
  10. "${draco_src_root}/io/file_writer_factory_test.cc")
  11. list(
  12. APPEND
  13. draco_test_sources
  14. "${draco_src_root}/animation/keyframe_animation_encoding_test.cc"
  15. "${draco_src_root}/animation/keyframe_animation_test.cc"
  16. "${draco_src_root}/attributes/point_attribute_test.cc"
  17. "${draco_src_root}/compression/attributes/point_d_vector_test.cc"
  18. "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_test.cc"
  19. "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_test.cc"
  20. "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoding_test.cc"
  21. "${draco_src_root}/compression/bit_coders/rans_coding_test.cc"
  22. "${draco_src_root}/compression/decode_test.cc"
  23. "${draco_src_root}/compression/encode_test.cc"
  24. "${draco_src_root}/compression/entropy/shannon_entropy_test.cc"
  25. "${draco_src_root}/compression/entropy/symbol_coding_test.cc"
  26. "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoding_test.cc"
  27. "${draco_src_root}/compression/mesh/mesh_encoder_test.cc"
  28. "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoding_test.cc"
  29. "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoding_test.cc"
  30. "${draco_src_root}/core/buffer_bit_coding_test.cc"
  31. "${draco_src_root}/core/draco_test_base.h"
  32. "${draco_src_root}/core/draco_test_utils.cc"
  33. "${draco_src_root}/core/draco_test_utils.h"
  34. "${draco_src_root}/core/math_utils_test.cc"
  35. "${draco_src_root}/core/quantization_utils_test.cc"
  36. "${draco_src_root}/core/status_test.cc"
  37. "${draco_src_root}/core/vector_d_test.cc"
  38. "${draco_src_root}/io/file_reader_test_common.h"
  39. "${draco_src_root}/io/file_utils_test.cc"
  40. "${draco_src_root}/io/stdio_file_reader_test.cc"
  41. "${draco_src_root}/io/stdio_file_writer_test.cc"
  42. "${draco_src_root}/io/obj_decoder_test.cc"
  43. "${draco_src_root}/io/obj_encoder_test.cc"
  44. "${draco_src_root}/io/ply_decoder_test.cc"
  45. "${draco_src_root}/io/ply_reader_test.cc"
  46. "${draco_src_root}/io/point_cloud_io_test.cc"
  47. "${draco_src_root}/mesh/mesh_are_equivalent_test.cc"
  48. "${draco_src_root}/mesh/mesh_cleanup_test.cc"
  49. "${draco_src_root}/mesh/triangle_soup_mesh_builder_test.cc"
  50. "${draco_src_root}/metadata/metadata_encoder_test.cc"
  51. "${draco_src_root}/metadata/metadata_test.cc"
  52. "${draco_src_root}/point_cloud/point_cloud_builder_test.cc"
  53. "${draco_src_root}/point_cloud/point_cloud_test.cc")
  54. list(APPEND draco_gtest_all
  55. "${draco_root}/../googletest/googletest/src/gtest-all.cc")
  56. list(APPEND draco_gtest_main
  57. "${draco_root}/../googletest/googletest/src/gtest_main.cc")
  58. macro(draco_setup_test_targets)
  59. if(DRACO_TESTS)
  60. if(NOT (EXISTS ${draco_gtest_all} AND EXISTS ${draco_gtest_main}))
  61. message(FATAL "googletest must be a sibling directory of ${draco_root}.")
  62. endif()
  63. list(APPEND draco_test_defines GTEST_HAS_PTHREAD=0)
  64. draco_add_library(TEST
  65. NAME
  66. draco_gtest
  67. TYPE
  68. STATIC
  69. SOURCES
  70. ${draco_gtest_all}
  71. DEFINES
  72. ${draco_defines}
  73. ${draco_test_defines}
  74. INCLUDES
  75. ${draco_test_include_paths})
  76. draco_add_library(TEST
  77. NAME
  78. draco_gtest_main
  79. TYPE
  80. STATIC
  81. SOURCES
  82. ${draco_gtest_main}
  83. DEFINES
  84. ${draco_defines}
  85. ${draco_test_defines}
  86. INCLUDES
  87. ${draco_test_include_paths})
  88. set(DRACO_TEST_DATA_DIR "${draco_root}/testdata")
  89. set(DRACO_TEST_TEMP_DIR "${draco_build}/draco_test_temp")
  90. file(MAKE_DIRECTORY "${DRACO_TEST_TEMP_DIR}")
  91. # Sets DRACO_TEST_DATA_DIR and DRACO_TEST_TEMP_DIR.
  92. configure_file("${draco_root}/cmake/draco_test_config.h.cmake"
  93. "${draco_build}/testing/draco_test_config.h")
  94. # Create the test targets.
  95. draco_add_executable(NAME
  96. draco_tests
  97. SOURCES
  98. ${draco_test_sources}
  99. DEFINES
  100. ${draco_defines}
  101. ${draco_test_defines}
  102. INCLUDES
  103. ${draco_test_include_paths}
  104. LIB_DEPS
  105. draco_static
  106. draco_gtest
  107. draco_gtest_main)
  108. draco_add_executable(NAME
  109. draco_factory_tests
  110. SOURCES
  111. ${draco_factory_test_sources}
  112. DEFINES
  113. ${draco_defines}
  114. ${draco_test_defines}
  115. INCLUDES
  116. ${draco_test_include_paths}
  117. LIB_DEPS
  118. draco_static
  119. draco_gtest
  120. draco_gtest_main)
  121. endif()
  122. endmacro()