diff --git a/.cmake-format.py b/.cmake-format.py index a0eeb6125..5b36f67aa 100644 --- a/.cmake-format.py +++ b/.cmake-format.py @@ -17,7 +17,7 @@ 'POST_LINK_JS_SOURCES': '*', 'FEATURES': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_add_executable': { 'kwargs': { @@ -32,7 +32,7 @@ 'OBJLIB_DEPS': '*', 'LIB_DEPS': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_add_library': { 'kwargs': { @@ -49,21 +49,21 @@ 'LIB_DEPS': '*', 'PUBLIC_INCLUDES': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_generate_emscripten_glue': { 'kwargs': { 'INPUT_IDL': '*', 'OUTPUT_PATH': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_get_required_emscripten_flags': { 'kwargs': { 'FLAG_LIST_VAR_COMPILER': '*', 'FLAG_LIST_VAR_LINKER': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_option': { 'kwargs': { @@ -71,7 +71,37 @@ 'HELPSTRING': '*', 'VALUE': '*', }, - 'pargs': 0 + 'pargs': 0, + }, + # Rules for built in CMake commands and those from dependencies. + 'list': { + 'kwargs': { + 'APPEND': '*', + 'FILTER': '*', + 'FIND': '*', + 'GET': '*', + 'INSERT': '*', + 'JOIN': '*', + 'LENGTH': '*', + 'POP_BACK': '*', + 'POP_FRONT': '*', + 'PREPEND': '*', + 'REMOVE_DUPLICATES': '*', + 'REMOVE_ITEM': '*', + 'REVERSE': '*', + 'SORT': '*', + 'SUBLIST': '*', + 'TRANSFORM': '*', + }, + }, + 'protobuf_generate': { + 'kwargs': { + 'IMPORT_DIRS': '*', + 'LANGUAGE': '*', + 'OUT_VAR': '*', + 'PROTOC_OUT_DIR': '*', + 'PROTOS': '*', + }, }, } diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..b368c6002 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "bundler" + directory: "/docs" + schedule: + interval: "monthly" + groups: + doc-gems-security: + applies-to: "security-updates" + patterns: + - "*" + commit-message: + include: "scope" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ecac61f82..781934b1b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,9 +3,9 @@ on: # Run on all pull requests. push: - # Run on merges/pushes to master. + # Run on merges/pushes to main. branches: - - master + - main schedule: # Run nightly, at midnight. @@ -123,30 +123,6 @@ jobs: cmake_build_command: cmake --build . -- -j2 draco_test_command: ./draco_tests - - test_name: ubuntu22-make-clang14-release-static - os: ubuntu-22.04 - cmake_configure_command: |- - cmake .. -G "Unix Makefiles" \ - -DBUILD_SHARED_LIBS=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=clang-14 \ - -DCMAKE_CXX_COMPILER=clang++-14 \ - -DDRACO_TESTS=ON - cmake_build_command: cmake --build . -- -j2 - draco_test_command: ./draco_tests - - test_name: ubuntu22-make-clang14-release-static-with-transcoder - os: ubuntu-22.04 - cmake_configure_command: |- - cmake .. -G "Unix Makefiles" \ - -DBUILD_SHARED_LIBS=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=clang-14 \ - -DCMAKE_CXX_COMPILER=clang++-14 \ - -DDRACO_TESTS=ON \ - -DDRACO_TRANSCODER_SUPPORTED=ON - cmake_build_command: cmake --build . -- -j2 - draco_test_command: ./draco_tests - - test_name: ubuntu-make-release-static os: ubuntu-latest cmake_configure_command: |- @@ -189,8 +165,7 @@ jobs: -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . --config Release -- -m:2 - # TODO(https://github.com/google/draco/issues/938): Flaking on this target. - draco_test_command: Release/draco_tests --gtest_filter=-GltfDecoderTest.TestLoadUnsupportedTexCoordAttributes + draco_test_command: Release/draco_tests - test_name: windows-msvc-release-static os: windows-2019 @@ -210,8 +185,7 @@ jobs: -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . --config Release -- -m:2 - # TODO(https://github.com/google/draco/issues/938): Flaking on this target. - draco_test_command: Release/draco_tests --gtest_filter=-GltfDecoderTest.TestLoadUnsupportedTexCoordAttributes + draco_test_command: Release/draco_tests - test_name: windows-make-release-shared os: windows-2019 @@ -235,8 +209,7 @@ jobs: -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . -- -j2 - # TODO(https://github.com/google/draco/issues/938): Flaking on this target. - draco_test_command: ./draco_tests --gtest_filter=-GltfDecoderTest.TestLoadUnsupportedTexCoordAttributes + draco_test_command: ./draco_tests - test_name: windows-make-release-static os: windows-2019 @@ -260,8 +233,7 @@ jobs: -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . -- -j2 - # TODO(https://github.com/google/draco/issues/938): Flaking on this target. - draco_test_command: ./draco_tests --gtest_filter=-GltfDecoderTest.TestLoadUnsupportedTexCoordAttributes + draco_test_command: ./draco_tests name: test-${{ matrix.test_name }} runs-on: ${{ matrix.os }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f07ff02d..e7b8f1521 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,9 @@ # the License. cmake_minimum_required(VERSION 3.12 FATAL_ERROR) +if(DRACO_TRANSCODER_SUPPORTED) + set(CMAKE_CXX_STANDARD 17) +endif() project(draco C CXX) if(NOT CMAKE_BUILD_TYPE) @@ -62,6 +65,7 @@ draco_track_configuration_variable(DRACO_GENERATED_SOURCES_DIRECTORY) # Controls use of std::mutex and absl::Mutex in ThreadPool. draco_track_configuration_variable(DRACO_THREADPOOL_USE_STD_MUTEX) + if(DRACO_VERBOSE) draco_dump_cmake_flag_variables() draco_dump_tracked_configuration_variables() @@ -86,539 +90,533 @@ draco_generate_features_h() # Draco source file listing variables. list( - APPEND - draco_attributes_sources - "${draco_src_root}/attributes/attribute_octahedron_transform.cc" - "${draco_src_root}/attributes/attribute_octahedron_transform.h" - "${draco_src_root}/attributes/attribute_quantization_transform.cc" - "${draco_src_root}/attributes/attribute_quantization_transform.h" - "${draco_src_root}/attributes/attribute_transform.cc" - "${draco_src_root}/attributes/attribute_transform.h" - "${draco_src_root}/attributes/attribute_transform_data.h" - "${draco_src_root}/attributes/attribute_transform_type.h" - "${draco_src_root}/attributes/geometry_attribute.cc" - "${draco_src_root}/attributes/geometry_attribute.h" - "${draco_src_root}/attributes/geometry_indices.h" - "${draco_src_root}/attributes/point_attribute.cc" - "${draco_src_root}/attributes/point_attribute.h") + APPEND draco_attributes_sources + "${draco_src_root}/attributes/attribute_octahedron_transform.cc" + "${draco_src_root}/attributes/attribute_octahedron_transform.h" + "${draco_src_root}/attributes/attribute_quantization_transform.cc" + "${draco_src_root}/attributes/attribute_quantization_transform.h" + "${draco_src_root}/attributes/attribute_transform.cc" + "${draco_src_root}/attributes/attribute_transform.h" + "${draco_src_root}/attributes/attribute_transform_data.h" + "${draco_src_root}/attributes/attribute_transform_type.h" + "${draco_src_root}/attributes/geometry_attribute.cc" + "${draco_src_root}/attributes/geometry_attribute.h" + "${draco_src_root}/attributes/geometry_indices.h" + "${draco_src_root}/attributes/point_attribute.cc" + "${draco_src_root}/attributes/point_attribute.h") list( APPEND - draco_compression_attributes_dec_sources - "${draco_src_root}/compression/attributes/attributes_decoder.cc" - "${draco_src_root}/compression/attributes/attributes_decoder.h" - "${draco_src_root}/compression/attributes/attributes_decoder_interface.h" - "${draco_src_root}/compression/attributes/kd_tree_attributes_decoder.cc" - "${draco_src_root}/compression/attributes/kd_tree_attributes_decoder.h" - "${draco_src_root}/compression/attributes/kd_tree_attributes_shared.h" - "${draco_src_root}/compression/attributes/mesh_attribute_indices_encoding_data.h" - "${draco_src_root}/compression/attributes/normal_compression_utils.h" - "${draco_src_root}/compression/attributes/point_d_vector.h" - "${draco_src_root}/compression/attributes/sequential_attribute_decoder.cc" - "${draco_src_root}/compression/attributes/sequential_attribute_decoder.h" - "${draco_src_root}/compression/attributes/sequential_attribute_decoders_controller.cc" - "${draco_src_root}/compression/attributes/sequential_attribute_decoders_controller.h" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_decoder.cc" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_decoder.h" - "${draco_src_root}/compression/attributes/sequential_normal_attribute_decoder.cc" - "${draco_src_root}/compression/attributes/sequential_normal_attribute_decoder.h" - "${draco_src_root}/compression/attributes/sequential_quantization_attribute_decoder.cc" - "${draco_src_root}/compression/attributes/sequential_quantization_attribute_decoder.h" + draco_compression_attributes_dec_sources + "${draco_src_root}/compression/attributes/attributes_decoder.cc" + "${draco_src_root}/compression/attributes/attributes_decoder.h" + "${draco_src_root}/compression/attributes/attributes_decoder_interface.h" + "${draco_src_root}/compression/attributes/kd_tree_attributes_decoder.cc" + "${draco_src_root}/compression/attributes/kd_tree_attributes_decoder.h" + "${draco_src_root}/compression/attributes/kd_tree_attributes_shared.h" + "${draco_src_root}/compression/attributes/mesh_attribute_indices_encoding_data.h" + "${draco_src_root}/compression/attributes/normal_compression_utils.h" + "${draco_src_root}/compression/attributes/point_d_vector.h" + "${draco_src_root}/compression/attributes/sequential_attribute_decoder.cc" + "${draco_src_root}/compression/attributes/sequential_attribute_decoder.h" + "${draco_src_root}/compression/attributes/sequential_attribute_decoders_controller.cc" + "${draco_src_root}/compression/attributes/sequential_attribute_decoders_controller.h" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_decoder.cc" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_decoder.h" + "${draco_src_root}/compression/attributes/sequential_normal_attribute_decoder.cc" + "${draco_src_root}/compression/attributes/sequential_normal_attribute_decoder.h" + "${draco_src_root}/compression/attributes/sequential_quantization_attribute_decoder.cc" + "${draco_src_root}/compression/attributes/sequential_quantization_attribute_decoder.h" ) list( APPEND - draco_compression_attributes_enc_sources - "${draco_src_root}/compression/attributes/attributes_encoder.cc" - "${draco_src_root}/compression/attributes/attributes_encoder.h" - "${draco_src_root}/compression/attributes/kd_tree_attributes_encoder.cc" - "${draco_src_root}/compression/attributes/kd_tree_attributes_encoder.h" - "${draco_src_root}/compression/attributes/linear_sequencer.h" - "${draco_src_root}/compression/attributes/points_sequencer.h" - "${draco_src_root}/compression/attributes/sequential_attribute_encoder.cc" - "${draco_src_root}/compression/attributes/sequential_attribute_encoder.h" - "${draco_src_root}/compression/attributes/sequential_attribute_encoders_controller.cc" - "${draco_src_root}/compression/attributes/sequential_attribute_encoders_controller.h" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoder.cc" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoder.h" - "${draco_src_root}/compression/attributes/sequential_normal_attribute_encoder.cc" - "${draco_src_root}/compression/attributes/sequential_normal_attribute_encoder.h" - "${draco_src_root}/compression/attributes/sequential_quantization_attribute_encoder.cc" - "${draco_src_root}/compression/attributes/sequential_quantization_attribute_encoder.h" + draco_compression_attributes_enc_sources + "${draco_src_root}/compression/attributes/attributes_encoder.cc" + "${draco_src_root}/compression/attributes/attributes_encoder.h" + "${draco_src_root}/compression/attributes/kd_tree_attributes_encoder.cc" + "${draco_src_root}/compression/attributes/kd_tree_attributes_encoder.h" + "${draco_src_root}/compression/attributes/linear_sequencer.h" + "${draco_src_root}/compression/attributes/points_sequencer.h" + "${draco_src_root}/compression/attributes/sequential_attribute_encoder.cc" + "${draco_src_root}/compression/attributes/sequential_attribute_encoder.h" + "${draco_src_root}/compression/attributes/sequential_attribute_encoders_controller.cc" + "${draco_src_root}/compression/attributes/sequential_attribute_encoders_controller.h" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoder.cc" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoder.h" + "${draco_src_root}/compression/attributes/sequential_normal_attribute_encoder.cc" + "${draco_src_root}/compression/attributes/sequential_normal_attribute_encoder.h" + "${draco_src_root}/compression/attributes/sequential_quantization_attribute_encoder.cc" + "${draco_src_root}/compression/attributes/sequential_quantization_attribute_encoder.h" ) list( APPEND - draco_compression_attributes_pred_schemes_dec_sources - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder_factory.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder_interface.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_delta_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_factory.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_interface.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_decoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_decoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_decoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h" + draco_compression_attributes_pred_schemes_dec_sources + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder_factory.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder_interface.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_delta_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_factory.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_interface.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_decoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_decoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_decoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h" ) list( APPEND - draco_compression_attributes_pred_schemes_enc_sources - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_delta_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_interface.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_factory.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_interface.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_encoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_encoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_encoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h" + draco_compression_attributes_pred_schemes_enc_sources + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_delta_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_interface.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_factory.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_interface.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_encoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_encoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_encoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h" ) list( APPEND - draco_compression_bit_coders_sources - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_coding_shared.h" - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_decoder.cc" - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_encoder.cc" - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_encoder.h" - "${draco_src_root}/compression/bit_coders/direct_bit_decoder.cc" - "${draco_src_root}/compression/bit_coders/direct_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/direct_bit_encoder.cc" - "${draco_src_root}/compression/bit_coders/direct_bit_encoder.h" - "${draco_src_root}/compression/bit_coders/folded_integer_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/folded_integer_bit_encoder.h" - "${draco_src_root}/compression/bit_coders/rans_bit_decoder.cc" - "${draco_src_root}/compression/bit_coders/rans_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/rans_bit_encoder.cc" - "${draco_src_root}/compression/bit_coders/rans_bit_encoder.h" - "${draco_src_root}/compression/bit_coders/symbol_bit_decoder.cc" - "${draco_src_root}/compression/bit_coders/symbol_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/symbol_bit_encoder.cc" - "${draco_src_root}/compression/bit_coders/symbol_bit_encoder.h") + draco_compression_bit_coders_sources + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_coding_shared.h" + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_decoder.cc" + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_encoder.cc" + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_encoder.h" + "${draco_src_root}/compression/bit_coders/direct_bit_decoder.cc" + "${draco_src_root}/compression/bit_coders/direct_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/direct_bit_encoder.cc" + "${draco_src_root}/compression/bit_coders/direct_bit_encoder.h" + "${draco_src_root}/compression/bit_coders/folded_integer_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/folded_integer_bit_encoder.h" + "${draco_src_root}/compression/bit_coders/rans_bit_decoder.cc" + "${draco_src_root}/compression/bit_coders/rans_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/rans_bit_encoder.cc" + "${draco_src_root}/compression/bit_coders/rans_bit_encoder.h" + "${draco_src_root}/compression/bit_coders/symbol_bit_decoder.cc" + "${draco_src_root}/compression/bit_coders/symbol_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/symbol_bit_encoder.cc" + "${draco_src_root}/compression/bit_coders/symbol_bit_encoder.h") list( - APPEND - draco_enc_config_sources - "${draco_src_root}/compression/config/compression_shared.h" - "${draco_src_root}/compression/config/draco_options.h" - "${draco_src_root}/compression/config/encoder_options.h" - "${draco_src_root}/compression/config/encoding_features.h") + APPEND draco_enc_config_sources + "${draco_src_root}/compression/config/compression_shared.h" + "${draco_src_root}/compression/config/draco_options.h" + "${draco_src_root}/compression/config/encoder_options.h" + "${draco_src_root}/compression/config/encoding_features.h") list( - APPEND - draco_dec_config_sources - "${draco_src_root}/compression/config/compression_shared.h" - "${draco_src_root}/compression/config/decoder_options.h" - "${draco_src_root}/compression/config/draco_options.h") + APPEND draco_dec_config_sources + "${draco_src_root}/compression/config/compression_shared.h" + "${draco_src_root}/compression/config/decoder_options.h" + "${draco_src_root}/compression/config/draco_options.h") list(APPEND draco_compression_options_sources - "${draco_src_root}/compression/draco_compression_options.cc" - "${draco_src_root}/compression/draco_compression_options.h") + "${draco_src_root}/compression/draco_compression_options.cc" + "${draco_src_root}/compression/draco_compression_options.h") list(APPEND draco_compression_decode_sources - "${draco_src_root}/compression/decode.cc" - "${draco_src_root}/compression/decode.h") + "${draco_src_root}/compression/decode.cc" + "${draco_src_root}/compression/decode.h") list( - APPEND - draco_compression_encode_sources - "${draco_src_root}/compression/encode.cc" - "${draco_src_root}/compression/encode.h" - "${draco_src_root}/compression/encode_base.h" - "${draco_src_root}/compression/expert_encode.cc" - "${draco_src_root}/compression/expert_encode.h") + APPEND draco_compression_encode_sources + "${draco_src_root}/compression/encode.cc" + "${draco_src_root}/compression/encode.h" + "${draco_src_root}/compression/encode_base.h" + "${draco_src_root}/compression/expert_encode.cc" + "${draco_src_root}/compression/expert_encode.h") list( APPEND - draco_compression_mesh_traverser_sources - "${draco_src_root}/compression/mesh/traverser/depth_first_traverser.h" - "${draco_src_root}/compression/mesh/traverser/max_prediction_degree_traverser.h" - "${draco_src_root}/compression/mesh/traverser/mesh_attribute_indices_encoding_observer.h" - "${draco_src_root}/compression/mesh/traverser/mesh_traversal_sequencer.h" - "${draco_src_root}/compression/mesh/traverser/traverser_base.h") + draco_compression_mesh_traverser_sources + "${draco_src_root}/compression/mesh/traverser/depth_first_traverser.h" + "${draco_src_root}/compression/mesh/traverser/max_prediction_degree_traverser.h" + "${draco_src_root}/compression/mesh/traverser/mesh_attribute_indices_encoding_observer.h" + "${draco_src_root}/compression/mesh/traverser/mesh_traversal_sequencer.h" + "${draco_src_root}/compression/mesh/traverser/traverser_base.h") list( APPEND - draco_compression_mesh_dec_sources - "${draco_src_root}/compression/mesh/mesh_decoder.cc" - "${draco_src_root}/compression/mesh/mesh_decoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl_interface.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_shared.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_decoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_predictive_decoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_valence_decoder.h" - "${draco_src_root}/compression/mesh/mesh_sequential_decoder.cc" - "${draco_src_root}/compression/mesh/mesh_sequential_decoder.h") + draco_compression_mesh_dec_sources + "${draco_src_root}/compression/mesh/mesh_decoder.cc" + "${draco_src_root}/compression/mesh/mesh_decoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl_interface.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_shared.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_decoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_predictive_decoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_valence_decoder.h" + "${draco_src_root}/compression/mesh/mesh_sequential_decoder.cc" + "${draco_src_root}/compression/mesh/mesh_sequential_decoder.h") list( APPEND - draco_compression_mesh_enc_sources - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl_interface.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_shared.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_encoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_predictive_encoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_valence_encoder.h" - "${draco_src_root}/compression/mesh/mesh_encoder.cc" - "${draco_src_root}/compression/mesh/mesh_encoder.h" - "${draco_src_root}/compression/mesh/mesh_sequential_encoder.cc" - "${draco_src_root}/compression/mesh/mesh_sequential_encoder.h") + draco_compression_mesh_enc_sources + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl_interface.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_shared.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_encoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_predictive_encoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_valence_encoder.h" + "${draco_src_root}/compression/mesh/mesh_encoder.cc" + "${draco_src_root}/compression/mesh/mesh_encoder.h" + "${draco_src_root}/compression/mesh/mesh_sequential_encoder.cc" + "${draco_src_root}/compression/mesh/mesh_sequential_encoder.h") list( APPEND - draco_compression_point_cloud_dec_sources - "${draco_src_root}/compression/point_cloud/point_cloud_decoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_decoder.h" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_decoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_decoder.h" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_decoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_decoder.h") + draco_compression_point_cloud_dec_sources + "${draco_src_root}/compression/point_cloud/point_cloud_decoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_decoder.h" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_decoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_decoder.h" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_decoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_decoder.h" +) list( APPEND - draco_compression_point_cloud_enc_sources - "${draco_src_root}/compression/point_cloud/point_cloud_encoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_encoder.h" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoder.h" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoder.h") + draco_compression_point_cloud_enc_sources + "${draco_src_root}/compression/point_cloud/point_cloud_encoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_encoder.h" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoder.h" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoder.h" +) list( - APPEND - draco_compression_entropy_sources - "${draco_src_root}/compression/entropy/ans.h" - "${draco_src_root}/compression/entropy/rans_symbol_coding.h" - "${draco_src_root}/compression/entropy/rans_symbol_decoder.h" - "${draco_src_root}/compression/entropy/rans_symbol_encoder.h" - "${draco_src_root}/compression/entropy/shannon_entropy.cc" - "${draco_src_root}/compression/entropy/shannon_entropy.h" - "${draco_src_root}/compression/entropy/symbol_decoding.cc" - "${draco_src_root}/compression/entropy/symbol_decoding.h" - "${draco_src_root}/compression/entropy/symbol_encoding.cc" - "${draco_src_root}/compression/entropy/symbol_encoding.h") + APPEND draco_compression_entropy_sources + "${draco_src_root}/compression/entropy/ans.h" + "${draco_src_root}/compression/entropy/rans_symbol_coding.h" + "${draco_src_root}/compression/entropy/rans_symbol_decoder.h" + "${draco_src_root}/compression/entropy/rans_symbol_encoder.h" + "${draco_src_root}/compression/entropy/shannon_entropy.cc" + "${draco_src_root}/compression/entropy/shannon_entropy.h" + "${draco_src_root}/compression/entropy/symbol_decoding.cc" + "${draco_src_root}/compression/entropy/symbol_decoding.h" + "${draco_src_root}/compression/entropy/symbol_encoding.cc" + "${draco_src_root}/compression/entropy/symbol_encoding.h") list( - APPEND - draco_core_sources - "${draco_src_root}/core/bit_utils.cc" - "${draco_src_root}/core/bit_utils.h" - "${draco_src_root}/core/bounding_box.cc" - "${draco_src_root}/core/bounding_box.h" - "${draco_src_root}/core/constants.h" - "${draco_src_root}/core/cycle_timer.cc" - "${draco_src_root}/core/cycle_timer.h" - "${draco_src_root}/core/data_buffer.cc" - "${draco_src_root}/core/data_buffer.h" - "${draco_src_root}/core/decoder_buffer.cc" - "${draco_src_root}/core/decoder_buffer.h" - "${draco_src_root}/core/divide.cc" - "${draco_src_root}/core/divide.h" - "${draco_src_root}/core/draco_index_type.h" - "${draco_src_root}/core/draco_index_type_vector.h" - "${draco_src_root}/core/draco_types.cc" - "${draco_src_root}/core/draco_types.h" - "${draco_src_root}/core/draco_version.h" - "${draco_src_root}/core/encoder_buffer.cc" - "${draco_src_root}/core/encoder_buffer.h" - "${draco_src_root}/core/hash_utils.cc" - "${draco_src_root}/core/hash_utils.h" - "${draco_src_root}/core/macros.h" - "${draco_src_root}/core/math_utils.h" - "${draco_src_root}/core/options.cc" - "${draco_src_root}/core/options.h" - "${draco_src_root}/core/quantization_utils.cc" - "${draco_src_root}/core/quantization_utils.h" - "${draco_src_root}/core/status.h" - "${draco_src_root}/core/status_or.h" - "${draco_src_root}/core/varint_decoding.h" - "${draco_src_root}/core/varint_encoding.h" - "${draco_src_root}/core/vector_d.h") + APPEND draco_core_sources + "${draco_src_root}/core/bit_utils.cc" + "${draco_src_root}/core/bit_utils.h" + "${draco_src_root}/core/bounding_box.cc" + "${draco_src_root}/core/bounding_box.h" + "${draco_src_root}/core/constants.h" + "${draco_src_root}/core/cycle_timer.cc" + "${draco_src_root}/core/cycle_timer.h" + "${draco_src_root}/core/data_buffer.cc" + "${draco_src_root}/core/data_buffer.h" + "${draco_src_root}/core/decoder_buffer.cc" + "${draco_src_root}/core/decoder_buffer.h" + "${draco_src_root}/core/divide.cc" + "${draco_src_root}/core/divide.h" + "${draco_src_root}/core/draco_index_type.h" + "${draco_src_root}/core/draco_index_type_vector.h" + "${draco_src_root}/core/draco_types.cc" + "${draco_src_root}/core/draco_types.h" + "${draco_src_root}/core/draco_version.h" + "${draco_src_root}/core/encoder_buffer.cc" + "${draco_src_root}/core/encoder_buffer.h" + "${draco_src_root}/core/hash_utils.cc" + "${draco_src_root}/core/hash_utils.h" + "${draco_src_root}/core/macros.h" + "${draco_src_root}/core/math_utils.h" + "${draco_src_root}/core/options.cc" + "${draco_src_root}/core/options.h" + "${draco_src_root}/core/quantization_utils.cc" + "${draco_src_root}/core/quantization_utils.h" + "${draco_src_root}/core/status.h" + "${draco_src_root}/core/status_or.h" + "${draco_src_root}/core/varint_decoding.h" + "${draco_src_root}/core/varint_encoding.h" + "${draco_src_root}/core/vector_d.h") list( - APPEND - draco_io_sources - "${draco_src_root}/io/file_reader_factory.cc" - "${draco_src_root}/io/file_reader_factory.h" - "${draco_src_root}/io/file_reader_interface.h" - "${draco_src_root}/io/file_utils.cc" - "${draco_src_root}/io/file_utils.h" - "${draco_src_root}/io/file_writer_factory.cc" - "${draco_src_root}/io/file_writer_factory.h" - "${draco_src_root}/io/file_writer_interface.h" - "${draco_src_root}/io/file_writer_utils.h" - "${draco_src_root}/io/file_writer_utils.cc" - "${draco_src_root}/io/mesh_io.cc" - "${draco_src_root}/io/mesh_io.h" - "${draco_src_root}/io/obj_decoder.cc" - "${draco_src_root}/io/obj_decoder.h" - "${draco_src_root}/io/obj_encoder.cc" - "${draco_src_root}/io/obj_encoder.h" - "${draco_src_root}/io/parser_utils.cc" - "${draco_src_root}/io/parser_utils.h" - "${draco_src_root}/io/ply_decoder.cc" - "${draco_src_root}/io/ply_decoder.h" - "${draco_src_root}/io/ply_encoder.cc" - "${draco_src_root}/io/ply_encoder.h" - "${draco_src_root}/io/ply_property_reader.h" - "${draco_src_root}/io/ply_property_writer.h" - "${draco_src_root}/io/ply_reader.cc" - "${draco_src_root}/io/ply_reader.h" - "${draco_src_root}/io/stl_decoder.cc" - "${draco_src_root}/io/stl_decoder.h" - "${draco_src_root}/io/stl_encoder.cc" - "${draco_src_root}/io/stl_encoder.h" - "${draco_src_root}/io/point_cloud_io.cc" - "${draco_src_root}/io/point_cloud_io.h" - "${draco_src_root}/io/stdio_file_reader.cc" - "${draco_src_root}/io/stdio_file_reader.h" - "${draco_src_root}/io/stdio_file_writer.cc" - "${draco_src_root}/io/stdio_file_writer.h") + APPEND draco_io_sources + "${draco_src_root}/io/file_reader_factory.cc" + "${draco_src_root}/io/file_reader_factory.h" + "${draco_src_root}/io/file_reader_interface.h" + "${draco_src_root}/io/file_utils.cc" + "${draco_src_root}/io/file_utils.h" + "${draco_src_root}/io/file_writer_factory.cc" + "${draco_src_root}/io/file_writer_factory.h" + "${draco_src_root}/io/file_writer_interface.h" + "${draco_src_root}/io/file_writer_utils.h" + "${draco_src_root}/io/file_writer_utils.cc" + "${draco_src_root}/io/mesh_io.cc" + "${draco_src_root}/io/mesh_io.h" + "${draco_src_root}/io/obj_decoder.cc" + "${draco_src_root}/io/obj_decoder.h" + "${draco_src_root}/io/obj_encoder.cc" + "${draco_src_root}/io/obj_encoder.h" + "${draco_src_root}/io/parser_utils.cc" + "${draco_src_root}/io/parser_utils.h" + "${draco_src_root}/io/ply_decoder.cc" + "${draco_src_root}/io/ply_decoder.h" + "${draco_src_root}/io/ply_encoder.cc" + "${draco_src_root}/io/ply_encoder.h" + "${draco_src_root}/io/ply_property_reader.h" + "${draco_src_root}/io/ply_property_writer.h" + "${draco_src_root}/io/ply_reader.cc" + "${draco_src_root}/io/ply_reader.h" + "${draco_src_root}/io/stl_decoder.cc" + "${draco_src_root}/io/stl_decoder.h" + "${draco_src_root}/io/stl_encoder.cc" + "${draco_src_root}/io/stl_encoder.h" + "${draco_src_root}/io/point_cloud_io.cc" + "${draco_src_root}/io/point_cloud_io.h" + "${draco_src_root}/io/stdio_file_reader.cc" + "${draco_src_root}/io/stdio_file_reader.h" + "${draco_src_root}/io/stdio_file_writer.cc" + "${draco_src_root}/io/stdio_file_writer.h") list( - APPEND - draco_mesh_sources - "${draco_src_root}/mesh/corner_table.cc" - "${draco_src_root}/mesh/corner_table.h" - "${draco_src_root}/mesh/corner_table_iterators.h" - "${draco_src_root}/mesh/mesh.cc" - "${draco_src_root}/mesh/mesh.h" - "${draco_src_root}/mesh/mesh_are_equivalent.cc" - "${draco_src_root}/mesh/mesh_are_equivalent.h" - "${draco_src_root}/mesh/mesh_attribute_corner_table.cc" - "${draco_src_root}/mesh/mesh_attribute_corner_table.h" - "${draco_src_root}/mesh/mesh_cleanup.cc" - "${draco_src_root}/mesh/mesh_cleanup.h" - "${draco_src_root}/mesh/mesh_features.cc" - "${draco_src_root}/mesh/mesh_features.h" - "${draco_src_root}/mesh/mesh_indices.h" - "${draco_src_root}/mesh/mesh_misc_functions.cc" - "${draco_src_root}/mesh/mesh_misc_functions.h" - "${draco_src_root}/mesh/mesh_stripifier.cc" - "${draco_src_root}/mesh/mesh_stripifier.h" - "${draco_src_root}/mesh/triangle_soup_mesh_builder.cc" - "${draco_src_root}/mesh/triangle_soup_mesh_builder.h" - "${draco_src_root}/mesh/valence_cache.h") + APPEND draco_mesh_sources + "${draco_src_root}/mesh/corner_table.cc" + "${draco_src_root}/mesh/corner_table.h" + "${draco_src_root}/mesh/corner_table_iterators.h" + "${draco_src_root}/mesh/mesh.cc" + "${draco_src_root}/mesh/mesh.h" + "${draco_src_root}/mesh/mesh_are_equivalent.cc" + "${draco_src_root}/mesh/mesh_are_equivalent.h" + "${draco_src_root}/mesh/mesh_attribute_corner_table.cc" + "${draco_src_root}/mesh/mesh_attribute_corner_table.h" + "${draco_src_root}/mesh/mesh_cleanup.cc" + "${draco_src_root}/mesh/mesh_cleanup.h" + "${draco_src_root}/mesh/mesh_features.cc" + "${draco_src_root}/mesh/mesh_features.h" + "${draco_src_root}/mesh/mesh_indices.h" + "${draco_src_root}/mesh/mesh_misc_functions.cc" + "${draco_src_root}/mesh/mesh_misc_functions.h" + "${draco_src_root}/mesh/mesh_stripifier.cc" + "${draco_src_root}/mesh/mesh_stripifier.h" + "${draco_src_root}/mesh/triangle_soup_mesh_builder.cc" + "${draco_src_root}/mesh/triangle_soup_mesh_builder.h" + "${draco_src_root}/mesh/valence_cache.h") list( - APPEND - draco_point_cloud_sources - "${draco_src_root}/point_cloud/point_cloud.cc" - "${draco_src_root}/point_cloud/point_cloud.h" - "${draco_src_root}/point_cloud/point_cloud_builder.cc" - "${draco_src_root}/point_cloud/point_cloud_builder.h") + APPEND draco_point_cloud_sources + "${draco_src_root}/point_cloud/point_cloud.cc" + "${draco_src_root}/point_cloud/point_cloud.h" + "${draco_src_root}/point_cloud/point_cloud_builder.cc" + "${draco_src_root}/point_cloud/point_cloud_builder.h") list( APPEND - draco_points_common_sources - "${draco_src_root}/compression/point_cloud/algorithms/point_cloud_compression_method.h" - "${draco_src_root}/compression/point_cloud/algorithms/point_cloud_types.h" - "${draco_src_root}/compression/point_cloud/algorithms/quantize_points_3.h" - "${draco_src_root}/compression/point_cloud/algorithms/queuing_policy.h") + draco_points_common_sources + "${draco_src_root}/compression/point_cloud/algorithms/point_cloud_compression_method.h" + "${draco_src_root}/compression/point_cloud/algorithms/point_cloud_types.h" + "${draco_src_root}/compression/point_cloud/algorithms/quantize_points_3.h" + "${draco_src_root}/compression/point_cloud/algorithms/queuing_policy.h") list( APPEND - draco_points_dec_sources - "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.cc" - "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.h" - "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_decoder.cc" - "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_decoder.h" + draco_points_dec_sources + "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.cc" + "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.h" + "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_decoder.cc" + "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_decoder.h" ) list( APPEND - draco_points_enc_sources - "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.cc" - "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.h" - "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_encoder.cc" - "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_encoder.h" + draco_points_enc_sources + "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.cc" + "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.h" + "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_encoder.cc" + "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_encoder.h" ) list( - APPEND - draco_metadata_sources - "${draco_src_root}/metadata/geometry_metadata.cc" - "${draco_src_root}/metadata/geometry_metadata.h" - "${draco_src_root}/metadata/metadata.cc" - "${draco_src_root}/metadata/metadata.h" - "${draco_src_root}/metadata/property_table.cc" - "${draco_src_root}/metadata/property_table.h" - "${draco_src_root}/metadata/structural_metadata.cc" - "${draco_src_root}/metadata/structural_metadata.h") + APPEND draco_metadata_sources + "${draco_src_root}/metadata/geometry_metadata.cc" + "${draco_src_root}/metadata/geometry_metadata.h" + "${draco_src_root}/metadata/metadata.cc" + "${draco_src_root}/metadata/metadata.h" + "${draco_src_root}/metadata/property_attribute.cc" + "${draco_src_root}/metadata/property_attribute.h" + "${draco_src_root}/metadata/property_table.cc" + "${draco_src_root}/metadata/property_table.h" + "${draco_src_root}/metadata/structural_metadata.cc" + "${draco_src_root}/metadata/structural_metadata.h" + "${draco_src_root}/metadata/structural_metadata_schema.cc" + "${draco_src_root}/metadata/structural_metadata_schema.h") list(APPEND draco_metadata_enc_sources - "${draco_src_root}/metadata/metadata_encoder.cc" - "${draco_src_root}/metadata/metadata_encoder.h") + "${draco_src_root}/metadata/metadata_encoder.cc" + "${draco_src_root}/metadata/metadata_encoder.h") list(APPEND draco_metadata_dec_sources - "${draco_src_root}/metadata/metadata_decoder.cc" - "${draco_src_root}/metadata/metadata_decoder.h") + "${draco_src_root}/metadata/metadata_decoder.cc" + "${draco_src_root}/metadata/metadata_decoder.h") list(APPEND draco_animation_sources - "${draco_src_root}/animation/keyframe_animation.cc" - "${draco_src_root}/animation/keyframe_animation.h") + "${draco_src_root}/animation/keyframe_animation.cc" + "${draco_src_root}/animation/keyframe_animation.h") list(APPEND draco_animation_enc_sources - "${draco_src_root}/animation/keyframe_animation_encoder.cc" - "${draco_src_root}/animation/keyframe_animation_encoder.h") + "${draco_src_root}/animation/keyframe_animation_encoder.cc" + "${draco_src_root}/animation/keyframe_animation_encoder.h") list(APPEND draco_animation_dec_sources - "${draco_src_root}/animation/keyframe_animation_decoder.cc" - "${draco_src_root}/animation/keyframe_animation_decoder.h") + "${draco_src_root}/animation/keyframe_animation_decoder.cc" + "${draco_src_root}/animation/keyframe_animation_decoder.h") -list(APPEND draco_js_dec_sources - "${draco_src_root}/javascript/emscripten/decoder_webidl_wrapper.cc" - "${draco_src_root}/javascript/emscripten/draco_decoder_glue_wrapper.cc") +list( + APPEND draco_js_dec_sources + "${draco_src_root}/javascript/emscripten/decoder_webidl_wrapper.cc" + "${draco_src_root}/javascript/emscripten/draco_decoder_glue_wrapper.cc" +) -list(APPEND draco_js_enc_sources - "${draco_src_root}/javascript/emscripten/draco_encoder_glue_wrapper.cc" - "${draco_src_root}/javascript/emscripten/encoder_webidl_wrapper.cc") +list( + APPEND draco_js_enc_sources + "${draco_src_root}/javascript/emscripten/draco_encoder_glue_wrapper.cc" + "${draco_src_root}/javascript/emscripten/encoder_webidl_wrapper.cc") list( APPEND - draco_animation_js_dec_sources - "${draco_src_root}/javascript/emscripten/animation_decoder_webidl_wrapper.cc" - "${draco_src_root}/javascript/emscripten/draco_animation_decoder_glue_wrapper.cc" + draco_animation_js_dec_sources + "${draco_src_root}/javascript/emscripten/animation_decoder_webidl_wrapper.cc" + "${draco_src_root}/javascript/emscripten/draco_animation_decoder_glue_wrapper.cc" ) list( APPEND - draco_animation_js_enc_sources - "${draco_src_root}/javascript/emscripten/animation_encoder_webidl_wrapper.cc" - "${draco_src_root}/javascript/emscripten/draco_animation_encoder_glue_wrapper.cc" + draco_animation_js_enc_sources + "${draco_src_root}/javascript/emscripten/animation_encoder_webidl_wrapper.cc" + "${draco_src_root}/javascript/emscripten/draco_animation_encoder_glue_wrapper.cc" ) list(APPEND draco_unity_plug_sources - "${draco_src_root}/unity/draco_unity_plugin.cc" - "${draco_src_root}/unity/draco_unity_plugin.h") + "${draco_src_root}/unity/draco_unity_plugin.cc" + "${draco_src_root}/unity/draco_unity_plugin.h") list(APPEND draco_maya_plug_sources - "${draco_src_root}/maya/draco_maya_plugin.cc" - "${draco_src_root}/maya/draco_maya_plugin.h") + "${draco_src_root}/maya/draco_maya_plugin.cc" + "${draco_src_root}/maya/draco_maya_plugin.h") if(DRACO_TRANSCODER_SUPPORTED) list( - APPEND - draco_animation_sources - "${draco_src_root}/animation/animation.cc" - "${draco_src_root}/animation/animation.h" - "${draco_src_root}/animation/node_animation_data.h" - "${draco_src_root}/animation/skin.cc" - "${draco_src_root}/animation/skin.h") + APPEND draco_animation_sources + "${draco_src_root}/animation/animation.cc" + "${draco_src_root}/animation/animation.h" + "${draco_src_root}/animation/node_animation_data.h" + "${draco_src_root}/animation/skin.cc" + "${draco_src_root}/animation/skin.h") list( - APPEND - draco_io_sources - "${draco_src_root}/io/gltf_decoder.cc" - "${draco_src_root}/io/gltf_decoder.h" - "${draco_src_root}/io/gltf_encoder.cc" - "${draco_src_root}/io/gltf_encoder.h" - "${draco_src_root}/io/gltf_utils.cc" - "${draco_src_root}/io/gltf_utils.h" - "${draco_src_root}/io/image_compression_options.h" - "${draco_src_root}/io/scene_io.cc" - "${draco_src_root}/io/scene_io.h" - "${draco_src_root}/io/texture_io.cc" - "${draco_src_root}/io/texture_io.h" - "${draco_src_root}/io/tiny_gltf_utils.cc" - "${draco_src_root}/io/tiny_gltf_utils.h") + APPEND draco_io_sources + "${draco_src_root}/io/gltf_decoder.cc" + "${draco_src_root}/io/gltf_decoder.h" + "${draco_src_root}/io/gltf_encoder.cc" + "${draco_src_root}/io/gltf_encoder.h" + "${draco_src_root}/io/gltf_utils.cc" + "${draco_src_root}/io/gltf_utils.h" + "${draco_src_root}/io/image_compression_options.h" + "${draco_src_root}/io/scene_io.cc" + "${draco_src_root}/io/scene_io.h" + "${draco_src_root}/io/texture_io.cc" + "${draco_src_root}/io/texture_io.h" + "${draco_src_root}/io/tiny_gltf_utils.cc" + "${draco_src_root}/io/tiny_gltf_utils.h") list( - APPEND - draco_material_sources - "${draco_src_root}/material/material.cc" - "${draco_src_root}/material/material.h" - "${draco_src_root}/material/material_library.cc" - "${draco_src_root}/material/material_library.h") + APPEND draco_material_sources + "${draco_src_root}/material/material.cc" + "${draco_src_root}/material/material.h" + "${draco_src_root}/material/material_library.cc" + "${draco_src_root}/material/material_library.h") list( - APPEND - draco_mesh_sources - "${draco_src_root}/mesh/mesh_connected_components.cc" - "${draco_src_root}/mesh/mesh_connected_components.h" - "${draco_src_root}/mesh/mesh_splitter.cc" - "${draco_src_root}/mesh/mesh_splitter.h" - "${draco_src_root}/mesh/mesh_utils.cc" - "${draco_src_root}/mesh/mesh_utils.h") + APPEND draco_mesh_sources + "${draco_src_root}/mesh/mesh_connected_components.h" + "${draco_src_root}/mesh/mesh_splitter.cc" + "${draco_src_root}/mesh/mesh_splitter.h" + "${draco_src_root}/mesh/mesh_utils.cc" + "${draco_src_root}/mesh/mesh_utils.h") list( - APPEND - draco_scene_sources - "${draco_src_root}/scene/instance_array.cc" - "${draco_src_root}/scene/instance_array.h" - "${draco_src_root}/scene/light.cc" - "${draco_src_root}/scene/light.h" - "${draco_src_root}/scene/mesh_group.h" - "${draco_src_root}/scene/scene.cc" - "${draco_src_root}/scene/scene.h" - "${draco_src_root}/scene/scene_are_equivalent.cc" - "${draco_src_root}/scene/scene_are_equivalent.h" - "${draco_src_root}/scene/scene_indices.h" - "${draco_src_root}/scene/scene_node.h" - "${draco_src_root}/scene/scene_utils.cc" - "${draco_src_root}/scene/scene_utils.h" - "${draco_src_root}/scene/trs_matrix.cc" - "${draco_src_root}/scene/trs_matrix.h") + APPEND draco_scene_sources + "${draco_src_root}/scene/instance_array.cc" + "${draco_src_root}/scene/instance_array.h" + "${draco_src_root}/scene/light.cc" + "${draco_src_root}/scene/light.h" + "${draco_src_root}/scene/mesh_group.h" + "${draco_src_root}/scene/scene.cc" + "${draco_src_root}/scene/scene.h" + "${draco_src_root}/scene/scene_are_equivalent.cc" + "${draco_src_root}/scene/scene_are_equivalent.h" + "${draco_src_root}/scene/scene_indices.h" + "${draco_src_root}/scene/scene_node.h" + "${draco_src_root}/scene/scene_utils.cc" + "${draco_src_root}/scene/scene_utils.h" + "${draco_src_root}/scene/trs_matrix.cc" + "${draco_src_root}/scene/trs_matrix.h") list( - APPEND - draco_texture_sources - "${draco_src_root}/texture/source_image.cc" - "${draco_src_root}/texture/source_image.h" - "${draco_src_root}/texture/texture.h" - "${draco_src_root}/texture/texture_library.cc" - "${draco_src_root}/texture/texture_library.h" - "${draco_src_root}/texture/texture_map.cc" - "${draco_src_root}/texture/texture_map.h" - "${draco_src_root}/texture/texture_transform.cc" - "${draco_src_root}/texture/texture_transform.h" - "${draco_src_root}/texture/texture_utils.cc" - "${draco_src_root}/texture/texture_utils.h") + APPEND draco_texture_sources + "${draco_src_root}/texture/source_image.cc" + "${draco_src_root}/texture/source_image.h" + "${draco_src_root}/texture/texture.h" + "${draco_src_root}/texture/texture_library.cc" + "${draco_src_root}/texture/texture_library.h" + "${draco_src_root}/texture/texture_map.cc" + "${draco_src_root}/texture/texture_map.h" + "${draco_src_root}/texture/texture_transform.cc" + "${draco_src_root}/texture/texture_transform.h" + "${draco_src_root}/texture/texture_utils.cc" + "${draco_src_root}/texture/texture_utils.h") + + endif() # @@ -633,66 +631,66 @@ if(EMSCRIPTEN AND DRACO_JS_GLUE) endif() list( - APPEND - draco_decoder_src - ${draco_attributes_sources} - ${draco_compression_attributes_dec_sources} - ${draco_compression_attributes_pred_schemes_dec_sources} - ${draco_compression_bit_coders_sources} - ${draco_compression_decode_sources} - ${draco_compression_entropy_sources} - ${draco_compression_mesh_traverser_sources} - ${draco_compression_mesh_dec_sources} - ${draco_compression_options_sources} - ${draco_compression_point_cloud_dec_sources} - ${draco_core_sources} - ${draco_dec_config_sources} - ${draco_js_dec_sources} - ${draco_mesh_sources} - ${draco_metadata_dec_sources} - ${draco_metadata_sources} - ${draco_point_cloud_sources} - ${draco_points_dec_sources}) + APPEND draco_decoder_src + ${draco_attributes_sources} + ${draco_compression_attributes_dec_sources} + ${draco_compression_attributes_pred_schemes_dec_sources} + ${draco_compression_bit_coders_sources} + ${draco_compression_decode_sources} + ${draco_compression_entropy_sources} + ${draco_compression_mesh_traverser_sources} + ${draco_compression_mesh_dec_sources} + ${draco_compression_options_sources} + ${draco_compression_point_cloud_dec_sources} + ${draco_core_sources} + ${draco_dec_config_sources} + ${draco_js_dec_sources} + ${draco_mesh_sources} + ${draco_metadata_dec_sources} + ${draco_metadata_sources} + ${draco_point_cloud_sources} + ${draco_points_dec_sources}) list( - APPEND - draco_encoder_src - ${draco_attributes_sources} - ${draco_compression_attributes_enc_sources} - ${draco_compression_attributes_pred_schemes_enc_sources} - ${draco_compression_bit_coders_sources} - ${draco_compression_encode_sources} - ${draco_compression_entropy_sources} - ${draco_compression_mesh_traverser_sources} - ${draco_compression_mesh_enc_sources} - ${draco_compression_options_sources} - ${draco_compression_point_cloud_enc_sources} - ${draco_core_sources} - ${draco_enc_config_sources} - ${draco_js_enc_sources} - ${draco_mesh_sources} - ${draco_metadata_enc_sources} - ${draco_metadata_sources} - ${draco_point_cloud_sources} - ${draco_points_enc_sources}) + APPEND draco_encoder_src + ${draco_attributes_sources} + ${draco_compression_attributes_enc_sources} + ${draco_compression_attributes_pred_schemes_enc_sources} + ${draco_compression_bit_coders_sources} + ${draco_compression_encode_sources} + ${draco_compression_entropy_sources} + ${draco_compression_mesh_traverser_sources} + ${draco_compression_mesh_enc_sources} + ${draco_compression_options_sources} + ${draco_compression_point_cloud_enc_sources} + ${draco_core_sources} + ${draco_enc_config_sources} + ${draco_js_enc_sources} + ${draco_mesh_sources} + ${draco_metadata_enc_sources} + ${draco_metadata_sources} + ${draco_point_cloud_sources} + ${draco_points_enc_sources}) list(APPEND draco_js_dec_idl - "${draco_src_root}/javascript/emscripten/draco_web_decoder.idl") + "${draco_src_root}/javascript/emscripten/draco_web_decoder.idl") list(APPEND draco_js_enc_idl - "${draco_src_root}/javascript/emscripten/draco_web_encoder.idl") + "${draco_src_root}/javascript/emscripten/draco_web_encoder.idl") list( - APPEND draco_animation_js_dec_idl - "${draco_src_root}/javascript/emscripten/draco_animation_web_decoder.idl") + APPEND + draco_animation_js_dec_idl + "${draco_src_root}/javascript/emscripten/draco_animation_web_decoder.idl") list( - APPEND draco_animation_js_enc_idl - "${draco_src_root}/javascript/emscripten/draco_animation_web_encoder.idl") + APPEND + draco_animation_js_enc_idl + "${draco_src_root}/javascript/emscripten/draco_animation_web_encoder.idl") list(APPEND draco_pre_link_js_sources - "${draco_src_root}/javascript/emscripten/prepareCallbacks.js" - "${draco_src_root}/javascript/emscripten/version.js") + "${draco_src_root}/javascript/emscripten/prepareCallbacks.js" + "${draco_src_root}/javascript/emscripten/version.js") list(APPEND draco_post_link_js_sources - "${draco_src_root}/javascript/emscripten/finalize.js") + "${draco_src_root}/javascript/emscripten/finalize.js") list(APPEND draco_post_link_js_decoder_sources ${draco_post_link_js_sources} - "${draco_src_root}/javascript/emscripten/decoder_functions.js") + "${draco_src_root}/javascript/emscripten/decoder_functions.js") set(draco_decoder_glue_path "${draco_build}/glue_decoder") set(draco_encoder_glue_path "${draco_build}/glue_encoder") @@ -704,8 +702,8 @@ if(EMSCRIPTEN AND DRACO_JS_GLUE) if(DRACO_DECODER_ATTRIBUTE_DEDUPLICATION) list(APPEND draco_decoder_features - "DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED" - "DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED") + "DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED" + "DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED") endif() draco_add_emscripten_executable( @@ -966,43 +964,44 @@ else() SOURCES ${draco_texture_sources} DEFINES ${draco_defines} INCLUDES ${draco_include_paths}) + endif() list( - APPEND - draco_object_library_deps - draco_attributes - draco_compression_attributes_dec - draco_compression_attributes_enc - draco_compression_attributes_pred_schemes_dec - draco_compression_attributes_pred_schemes_enc - draco_compression_bit_coders - draco_compression_decode - draco_compression_encode - draco_compression_entropy - draco_compression_mesh_dec - draco_compression_mesh_enc - draco_compression_options - draco_compression_point_cloud_dec - draco_compression_point_cloud_enc - draco_core - draco_dec_config - draco_enc_config - draco_io - draco_mesh - draco_metadata - draco_metadata_dec - draco_metadata_enc - draco_animation - draco_animation_dec - draco_animation_enc - draco_point_cloud - draco_points_dec - draco_points_enc) + APPEND draco_object_library_deps + draco_attributes + draco_compression_attributes_dec + draco_compression_attributes_enc + draco_compression_attributes_pred_schemes_dec + draco_compression_attributes_pred_schemes_enc + draco_compression_bit_coders + draco_compression_decode + draco_compression_encode + draco_compression_entropy + draco_compression_mesh_dec + draco_compression_mesh_enc + draco_compression_options + draco_compression_point_cloud_dec + draco_compression_point_cloud_enc + draco_core + draco_dec_config + draco_enc_config + draco_io + draco_mesh + draco_metadata + draco_metadata_dec + draco_metadata_enc + draco_animation + draco_animation_dec + draco_animation_enc + draco_point_cloud + draco_points_dec + draco_points_enc) if(DRACO_TRANSCODER_SUPPORTED) list(APPEND draco_object_library_deps draco_material draco_scene - draco_texture) + draco_texture) + endif() # Library targets that consume the object collections. @@ -1025,7 +1024,8 @@ else() TYPE ${draco_lib_type} DEFINES ${draco_defines} INCLUDES ${draco_include_paths} - OBJLIB_DEPS ${draco_object_library_deps}) + OBJLIB_DEPS ${draco_object_library_deps} + LIB_DEPS ${draco_lib_deps}) add_library(draco::draco ALIAS draco) else() @@ -1035,7 +1035,8 @@ else() TYPE STATIC DEFINES ${draco_defines} INCLUDES ${draco_include_paths} - OBJLIB_DEPS ${draco_object_library_deps}) + OBJLIB_DEPS ${draco_object_library_deps} + LIB_DEPS ${draco_lib_deps}) if(BUILD_SHARED_LIBS) draco_add_library( @@ -1129,6 +1130,19 @@ else() DEFINES ${draco_defines} INCLUDES ${draco_include_paths} LIB_DEPS ${draco_dependency}) + + if(DRACO_SIMPLIFIER_SUPPORTED) + draco_add_executable( + NAME draco_simplifier + SOURCES ${draco_pipeline_proto_header} + "${draco_src_root}/tools/draco_simplifier.cc" + "${draco_src_root}/tools/draco_simplifier_lib.cc" + "${draco_src_root}/tools/draco_simplifier_lib.h" + ${draco_io_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + LIB_DEPS ${draco_dependency}) + endif() endif() draco_setup_install_target() diff --git a/README.md b/README.md index d2b5e50ec..fc2c69426 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

-[![draco-ci](https://github.com/google/draco/workflows/draco-ci/badge.svg?branch=master)](https://github.com/google/draco/actions/workflows/ci.yml) +[![draco-ci](https://github.com/google/draco/workflows/draco-ci/badge.svg?branch=main)](https://github.com/google/draco/actions/workflows/ci.yml) News ======= @@ -14,6 +14,24 @@ delays can result in transient errors that can be difficult to diagnose when new Draco releases are launched. To avoid the issue pin your sites to a versioned release. +### Version 1.5.7 release: +* Using the versioned www.gstatic.com WASM and Javascript decoders continues + to be recommended. To use v1.5.7, use this URL: + * https://www.gstatic.com/draco/versioned/decoders/1.5.7/* +* Added support for normalized attributes to Emscripten encoder API. +* Bug fixes. +* Security fixes. + +### Version 1.5.6 release: +* Using the versioned www.gstatic.com WASM and Javascript decoders continues + to be recommended. To use v1.5.6, use this URL: + * https://www.gstatic.com/draco/versioned/decoders/1.5.6/* +* The CMake flag DRACO_DEBUG_MSVC_WARNINGS has been replaced with + DRACO_DEBUG_COMPILER_WARNINGS, and the behavior has changed. It is now a + boolean flag defined in draco_options.cmake. +* Bug fixes. +* Security fixes. + ### Version 1.5.5 release: * Using the versioned www.gstatic.com WASM and Javascript decoders continues to be recommended. To use v1.5.5, use this URL: @@ -254,9 +272,9 @@ will output usage and options. Encoding Tool ------------- -`draco_encoder` will read OBJ or PLY files as input, and output Draco-encoded -files. We have included Stanford's [Bunny] mesh for testing. The basic command -line looks like this: +`draco_encoder` will read OBJ, STL or PLY files as input, and output +Draco-encoded files. We have included Stanford's [Bunny] mesh for testing. The +basic command line looks like this: ~~~~~ bash ./draco_encoder -i testdata/bun_zipper.ply -o out.drc @@ -309,8 +327,8 @@ and denser point clouds. Decoding Tool ------------- -`draco_decoder` will read Draco files as input, and output OBJ or PLY files. -The basic command line looks like this: +`draco_decoder` will read Draco files as input, and output OBJ, STL or PLY +files. The basic command line looks like this: ~~~~~ bash ./draco_decoder -i in.drc -o out.obj @@ -593,6 +611,6 @@ References [meshes]: https://en.wikipedia.org/wiki/Polygon_mesh [point clouds]: https://en.wikipedia.org/wiki/Point_cloud [Bunny]: https://graphics.stanford.edu/data/3Dscanrep/ -[CONTRIBUTING]: https://raw.githubusercontent.com/google/draco/master/CONTRIBUTING.md +[CONTRIBUTING]: https://raw.githubusercontent.com/google/draco/main/CONTRIBUTING.md Bunny model from Stanford's graphic department diff --git a/cmake/draco_build_definitions.cmake b/cmake/draco_build_definitions.cmake index b7e6be4cd..4c7b3f9fe 100644 --- a/cmake/draco_build_definitions.cmake +++ b/cmake/draco_build_definitions.cmake @@ -31,10 +31,6 @@ macro(set_draco_target) endif() set(draco_plugin_dependency draco_static) endif() - - if(BUILD_SHARED_LIBS) - set(CMAKE_POSITION_INDEPENDENT_CODE ON) - endif() endmacro() # Configures flags and sets build system globals. @@ -60,7 +56,7 @@ macro(draco_set_build_definitions) # passed to libtool. # # We set DRACO_SOVERSION = [c-a].a.r - set(LT_CURRENT 7) + set(LT_CURRENT 9) set(LT_REVISION 0) set(LT_AGE 0) math(EXPR DRACO_SOVERSION_MAJOR "${LT_CURRENT} - ${LT_AGE}") @@ -70,21 +66,20 @@ macro(draco_set_build_definitions) unset(LT_AGE) list(APPEND draco_include_paths "${draco_root}" "${draco_root}/src" - "${draco_build}") - - if(DRACO_ABSL) - list(APPEND draco_include_paths "${draco_root}/third_party/abseil-cpp") - endif() + "${draco_build}") if(DRACO_TRANSCODER_SUPPORTED) draco_setup_eigen() draco_setup_filesystem() draco_setup_tinygltf() + + endif() list(APPEND draco_defines "DRACO_CMAKE=1" - "DRACO_FLAGS_SRCDIR=\"${draco_root}\"" "DRACO_FLAGS_TMPDIR=\"/tmp\"") + "DRACO_FLAGS_SRCDIR=\"${draco_root}\"" + "DRACO_FLAGS_TMPDIR=\"/tmp\"") if(MSVC OR WIN32) list(APPEND draco_defines "_CRT_SECURE_NO_DEPRECATE=1" "NOMINMAX=1") @@ -92,37 +87,22 @@ macro(draco_set_build_definitions) if(BUILD_SHARED_LIBS) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE) endif() + endif() - if(MSVC AND NOT DRACO_DEBUG_MSVC_WARNINGS) - # Silence some excessively noisy MSVC warnings when not actively seeking - # to address them. These are harmless and serve only to make the build - # output extremely verbose. To enable these warnings set the MSVC warning - # level to 4, or define DRACO_DEBUG_MSVC_WARNINGS on the CMake command - # line when configuring Draco. - - # warning C4018: '': signed/unsigned mismatch. - list(APPEND draco_msvc_cxx_flags /w44018) - - # warning C4146: unary minus operator applied to unsigned type, result - # still unsigned - list(APPEND draco_msvc_cxx_flags /w44146) - - # warning C4244: 'return': conversion from '' to '', possible - # loss of data. - list(APPEND draco_msvc_cxx_flags /w44244) - - # warning C4267: 'initializing' conversion from '' to '', - # possible loss of data. - list(APPEND draco_msvc_cxx_flags /w44267) - - # warning C4804: '': unsafe use of type '' in operation. - list(APPEND draco_msvc_cxx_flags /w44804) - endif() - else() + if(NOT MSVC) if(${CMAKE_SIZEOF_VOID_P} EQUAL 8) # Ensure 64-bit platforms can support large files. list(APPEND draco_defines "_LARGEFILE_SOURCE" "_FILE_OFFSET_BITS=64") endif() + + if(NOT DRACO_DEBUG_COMPILER_WARNINGS) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + list(APPEND draco_clang_cxx_flags + "-Wno-implicit-const-int-float-conversion") + else() + list(APPEND draco_base_cxx_flags "-Wno-deprecated-declarations") + endif() + endif() endif() if(ANDROID) diff --git a/cmake/draco_dependencies.cmake b/cmake/draco_dependencies.cmake index 76544187e..91ee0839b 100644 --- a/cmake/draco_dependencies.cmake +++ b/cmake/draco_dependencies.cmake @@ -106,19 +106,15 @@ macro(draco_setup_googletest) set(gtest_path "${draco_root}/third_party/googletest") endif() - list( - APPEND - draco_test_include_paths - ${draco_include_paths} - "${gtest_path}/include" - "${gtest_path}/googlemock" - "${gtest_path}/googletest/include" - "${gtest_path}/googletest") + list(APPEND draco_test_include_paths ${draco_include_paths} + "${gtest_path}/include" "${gtest_path}/googlemock" + "${gtest_path}/googletest/include" "${gtest_path}/googletest") list(APPEND draco_gtest_all "${gtest_path}/googletest/src/gtest-all.cc") list(APPEND draco_gtest_main "${gtest_path}/googletest/src/gtest_main.cc") endmacro() + # Determines the location of TinyGLTF and updates the build configuration # accordingly. macro(draco_setup_tinygltf) diff --git a/cmake/draco_emscripten.cmake b/cmake/draco_emscripten.cmake index 7779dd4ec..c9616ae86 100644 --- a/cmake/draco_emscripten.cmake +++ b/cmake/draco_emscripten.cmake @@ -58,7 +58,7 @@ macro(draco_get_required_emscripten_flags) # what are supposedly link-only flags sent with compile commands, but then # proceeds to produce broken code if the warnings are heeded. list(APPEND ${em_FLAG_LIST_VAR_COMPILER} - "-Wno-unused-command-line-argument") + "-Wno-unused-command-line-argument") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-Wno-almost-asm") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "--memory-init-file" "0") @@ -71,7 +71,7 @@ macro(draco_get_required_emscripten_flags) list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sMODULARIZE=1") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sFILESYSTEM=0") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} - "-sEXPORTED_FUNCTIONS=[\"_free\",\"_malloc\"]") + "-sEXPORTED_FUNCTIONS=[\"_free\",\"_malloc\"]") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sPRECISE_F32=1") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sNODEJS_CATCH_EXIT=0") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sNODEJS_CATCH_REJECTION=0") diff --git a/cmake/draco_flags.cmake b/cmake/draco_flags.cmake index 349113a6e..f3b24c6e1 100644 --- a/cmake/draco_flags.cmake +++ b/cmake/draco_flags.cmake @@ -99,8 +99,8 @@ macro(draco_test_cxx_flag) # are passed as a list it will remove the list separators, and attempt to run # a compile command using list entries concatenated together as a single # argument. Avoid the problem by forcing the argument to be a string. - draco_set_and_stringify(SOURCE_VARS all_cxx_flags DEST all_cxx_flags) - check_cxx_compiler_flag("${all_cxx_flags}" draco_all_cxx_flags_pass) + draco_set_and_stringify(SOURCE_VARS all_cxx_flags DEST all_cxx_flags_string) + check_cxx_compiler_flag("${all_cxx_flags_string}" draco_all_cxx_flags_pass) if(cxx_test_FLAG_REQUIRED AND NOT draco_all_cxx_flags_pass) draco_die("Flag test failed for required flag(s): " diff --git a/cmake/draco_install.cmake b/cmake/draco_install.cmake index f7e1153e1..b9dda265a 100644 --- a/cmake/draco_install.cmake +++ b/cmake/draco_install.cmake @@ -23,99 +23,101 @@ include(GNUInstallDirs) # Sets up the draco install targets. Must be called after the static library # target is created. macro(draco_setup_install_target) - set(bin_path "${CMAKE_INSTALL_FULL_BINDIR}") - set(data_path "${CMAKE_INSTALL_FULL_DATAROOTDIR}") - set(includes_path "${CMAKE_INSTALL_FULL_INCLUDEDIR}") - set(libs_path "${CMAKE_INSTALL_FULL_LIBDIR}") - - foreach(file ${draco_sources}) - if(file MATCHES "h$") - list(APPEND draco_api_includes ${file}) + if(DRACO_INSTALL) + set(bin_path "${CMAKE_INSTALL_BINDIR}") + set(data_path "${CMAKE_INSTALL_DATAROOTDIR}") + set(includes_path "${CMAKE_INSTALL_INCLUDEDIR}") + set(libs_path "${CMAKE_INSTALL_LIBDIR}") + + foreach(file ${draco_sources}) + if(file MATCHES "h$") + list(APPEND draco_api_includes ${file}) + endif() + endforeach() + + list(REMOVE_DUPLICATES draco_api_includes) + + # Strip $draco_src_root from the file paths: we need to install relative to + # $include_directory. + list(TRANSFORM draco_api_includes REPLACE "${draco_src_root}/" "") + + foreach(draco_api_include ${draco_api_includes}) + get_filename_component(file_directory ${draco_api_include} DIRECTORY) + set(target_directory "${includes_path}/draco/${file_directory}") + install(FILES ${draco_src_root}/${draco_api_include} + DESTINATION "${target_directory}") + endforeach() + + install(FILES "${draco_build}/draco/draco_features.h" + DESTINATION "${includes_path}/draco/") + + install(TARGETS draco_decoder DESTINATION "${bin_path}") + install(TARGETS draco_encoder DESTINATION "${bin_path}") + + if(DRACO_TRANSCODER_SUPPORTED) + install(TARGETS draco_transcoder DESTINATION "${bin_path}") endif() - endforeach() - list(REMOVE_DUPLICATES draco_api_includes) + if(MSVC) + install( + TARGETS draco + EXPORT dracoExport + RUNTIME DESTINATION "${bin_path}" + ARCHIVE DESTINATION "${libs_path}" + LIBRARY DESTINATION "${libs_path}") + else() + install( + TARGETS draco_static + EXPORT dracoExport + DESTINATION "${libs_path}") + + if(BUILD_SHARED_LIBS) + install( + TARGETS draco_shared + EXPORT dracoExport + RUNTIME DESTINATION "${bin_path}" + ARCHIVE DESTINATION "${libs_path}" + LIBRARY DESTINATION "${libs_path}") + endif() + endif() - # Strip $draco_src_root from the file paths: we need to install relative to - # $include_directory. - list(TRANSFORM draco_api_includes REPLACE "${draco_src_root}/" "") + if(DRACO_UNITY_PLUGIN) + install(TARGETS dracodec_unity DESTINATION "${libs_path}") + endif() - foreach(draco_api_include ${draco_api_includes}) - get_filename_component(file_directory ${draco_api_include} DIRECTORY) - set(target_directory "${includes_path}/draco/${file_directory}") - install(FILES ${draco_src_root}/${draco_api_include} - DESTINATION "${target_directory}") - endforeach() + if(DRACO_MAYA_PLUGIN) + install(TARGETS draco_maya_wrapper DESTINATION "${libs_path}") + endif() - install(FILES "${draco_build}/draco/draco_features.h" - DESTINATION "${includes_path}/draco/") + # pkg-config: draco.pc + configure_file("${draco_root}/cmake/draco.pc.template" + "${draco_build}/draco.pc" @ONLY NEWLINE_STYLE UNIX) + install(FILES "${draco_build}/draco.pc" DESTINATION "${libs_path}/pkgconfig") - install(TARGETS draco_decoder DESTINATION "${bin_path}") - install(TARGETS draco_encoder DESTINATION "${bin_path}") + # CMake config: draco-config.cmake + configure_package_config_file( + "${draco_root}/cmake/draco-config.cmake.template" + "${draco_build}/draco-config.cmake" + INSTALL_DESTINATION "${data_path}/cmake/draco") - if(DRACO_TRANSCODER_SUPPORTED) - install(TARGETS draco_transcoder DESTINATION "${bin_path}") - endif() + write_basic_package_version_file( + "${draco_build}/draco-config-version.cmake" + VERSION ${DRACO_VERSION} + COMPATIBILITY AnyNewerVersion) - if(MSVC) - install( - TARGETS draco + export( EXPORT dracoExport - RUNTIME DESTINATION "${bin_path}" - ARCHIVE DESTINATION "${libs_path}" - LIBRARY DESTINATION "${libs_path}") - else() + NAMESPACE draco:: + FILE "${draco_build}/draco-targets.cmake") + install( - TARGETS draco_static EXPORT dracoExport - DESTINATION "${libs_path}") - - if(BUILD_SHARED_LIBS) - install( - TARGETS draco_shared - EXPORT dracoExport - RUNTIME DESTINATION "${bin_path}" - ARCHIVE DESTINATION "${libs_path}" - LIBRARY DESTINATION "${libs_path}") - endif() - endif() - - if(DRACO_UNITY_PLUGIN) - install(TARGETS dracodec_unity DESTINATION "${libs_path}") - endif() - - if(DRACO_MAYA_PLUGIN) - install(TARGETS draco_maya_wrapper DESTINATION "${libs_path}") - endif() - - # pkg-config: draco.pc - configure_file("${draco_root}/cmake/draco.pc.template" - "${draco_build}/draco.pc" @ONLY NEWLINE_STYLE UNIX) - install(FILES "${draco_build}/draco.pc" DESTINATION "${libs_path}/pkgconfig") - - # CMake config: draco-config.cmake - configure_package_config_file( - "${draco_root}/cmake/draco-config.cmake.template" - "${draco_build}/draco-config.cmake" - INSTALL_DESTINATION "${data_path}/cmake/draco") - - write_basic_package_version_file( - "${draco_build}/draco-config-version.cmake" - VERSION ${DRACO_VERSION} - COMPATIBILITY AnyNewerVersion) - - export( - EXPORT dracoExport - NAMESPACE draco:: - FILE "${draco_build}/draco-targets.cmake") - - install( - EXPORT dracoExport - NAMESPACE draco:: - FILE draco-targets.cmake - DESTINATION "${data_path}/cmake/draco") - - install(FILES "${draco_build}/draco-config.cmake" - "${draco_build}/draco-config-version.cmake" - DESTINATION "${data_path}/cmake/draco") + NAMESPACE draco:: + FILE draco-targets.cmake + DESTINATION "${data_path}/cmake/draco") + + install(FILES "${draco_build}/draco-config.cmake" + "${draco_build}/draco-config-version.cmake" + DESTINATION "${data_path}/cmake/draco") + endif(DRACO_INSTALL) endmacro() diff --git a/cmake/draco_options.cmake b/cmake/draco_options.cmake index 42a15b45e..1e3f750f2 100644 --- a/cmake/draco_options.cmake +++ b/cmake/draco_options.cmake @@ -127,6 +127,14 @@ macro(draco_set_default_options) NAME DRACO_TRANSCODER_SUPPORTED HELPSTRING "Enable the Draco transcoder." VALUE OFF) + draco_option( + NAME DRACO_DEBUG_COMPILER_WARNINGS + HELPSTRING "Turn on more warnings." + VALUE OFF) + draco_option( + NAME DRACO_INSTALL + HELPSTRING "Enable installation." + VALUE ON) draco_check_deprecated_options() endmacro() @@ -231,6 +239,8 @@ macro(draco_set_optional_features) if(DRACO_TRANSCODER_SUPPORTED) draco_enable_feature(FEATURE "DRACO_TRANSCODER_SUPPORTED") endif() + + endmacro() # Macro that handles tracking of Draco preprocessor symbols for the purpose of @@ -282,8 +292,56 @@ function(draco_generate_features_h) file(APPEND "${draco_features_file_name}.new" "#define ${feature}\n") endforeach() + if(MSVC) + if(NOT DRACO_DEBUG_COMPILER_WARNINGS) + file(APPEND "${draco_features_file_name}.new" + "// Enable DRACO_DEBUG_COMPILER_WARNINGS at CMake generation \n" + "// time to remove these pragmas.\n") + + # warning C4018: '': signed/unsigned mismatch. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4018)\n") + + # warning C4146: unary minus operator applied to unsigned type, result + # still unsigned + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4146)\n") + + # warning C4244: 'return': conversion from '' to '', possible + # loss of data. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4244)\n") + + # warning C4267: 'initializing' conversion from '' to '', + # possible loss of data. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4267)\n") + + # warning C4305: 'context' : truncation from 'type1' to 'type2'. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4305)\n") + + # warning C4661: 'identifier' : no suitable definition provided for + # explicit template instantiation request. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4661)\n") + + # warning C4800: Implicit conversion from 'type' to bool. Possible + # information loss. + # Also, in older MSVC releases: + # warning C4800: 'type' : forcing value to bool 'true' or 'false' + # (performance warning). + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4800)\n") + + # warning C4804: '': unsafe use of type '' in operation. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4804)\n") + endif() + endif() + file(APPEND "${draco_features_file_name}.new" - "\n#endif // DRACO_FEATURES_H_") + "\n#endif // DRACO_FEATURES_H_\n") # Will replace ${draco_features_file_name} only if the file content has # changed. This prevents forced Draco rebuilds after CMake runs. diff --git a/cmake/draco_sanitizer.cmake b/cmake/draco_sanitizer.cmake index 84e1306a8..77d141481 100644 --- a/cmake/draco_sanitizer.cmake +++ b/cmake/draco_sanitizer.cmake @@ -26,7 +26,7 @@ macro(draco_configure_sanitizer) if(DRACO_SANITIZE MATCHES "cfi") list(APPEND SAN_CXX_FLAGS "-flto" "-fno-sanitize-trap=cfi") list(APPEND SAN_LINKER_FLAGS "-flto" "-fno-sanitize-trap=cfi" - "-fuse-ld=gold") + "-fuse-ld=gold") endif() if(${CMAKE_SIZEOF_VOID_P} EQUAL 4 AND DRACO_SANITIZE MATCHES diff --git a/cmake/draco_targets.cmake b/cmake/draco_targets.cmake index 9892bee48..c8c79f511 100644 --- a/cmake/draco_targets.cmake +++ b/cmake/draco_targets.cmake @@ -108,7 +108,8 @@ macro(draco_add_executable) endif() add_executable(${exe_NAME} ${exe_SOURCES}) - target_compile_features(${exe_NAME} PRIVATE cxx_std_11) + + target_compile_features(${exe_NAME} PUBLIC cxx_std_11) if(NOT EMSCRIPTEN) set_target_properties(${exe_NAME} PROPERTIES VERSION ${DRACO_VERSION}) @@ -161,12 +162,7 @@ macro(draco_add_executable) endif() if(exe_LIB_DEPS) - unset(exe_static) - if("${CMAKE_EXE_LINKER_FLAGS} ${DRACO_EXE_LINKER_FLAGS}" MATCHES "static") - set(exe_static ON) - endif() - - if(exe_static AND CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") + if(CMAKE_CXX_COMPILER_ID MATCHES "^Clang|^GNU") # Third party dependencies can introduce dependencies on system and test # libraries. Since the target created here is an executable, and CMake # does not provide a method of controlling order of link dependencies, @@ -174,6 +170,10 @@ macro(draco_add_executable) # ensure that dependencies of third party targets can be resolved when # those dependencies happen to be resolved by dependencies of the current # target. + # TODO(tomfinegan): For portability use LINK_GROUP with RESCAN instead of + # directly (ab)using compiler/linker specific flags once CMake v3.24 is in + # wider use. See: + # https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#genex:LINK_GROUP list(INSERT exe_LIB_DEPS 0 -Wl,--start-group) list(APPEND exe_LIB_DEPS -Wl,--end-group) endif() @@ -290,8 +290,16 @@ macro(draco_add_library) endif() add_library(${lib_NAME} ${lib_TYPE} ${lib_SOURCES}) - target_compile_features(${lib_NAME} PUBLIC cxx_std_11) + + target_compile_features(${lib_NAME} PUBLIC cxx_std_11) + target_include_directories(${lib_NAME} PUBLIC $) + + if(BUILD_SHARED_LIBS) + # Enable PIC for all targets in shared configurations. + set_target_properties(${lib_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON) + endif() + if(lib_SOURCES) draco_process_intrinsics_sources(TARGET ${lib_NAME} SOURCES ${lib_SOURCES}) endif() diff --git a/cmake/draco_test_config.h.cmake b/cmake/draco_test_config.h.cmake index 656cd0014..9bb174569 100644 --- a/cmake/draco_test_config.h.cmake +++ b/cmake/draco_test_config.h.cmake @@ -23,5 +23,6 @@ #define DRACO_TEST_DATA_DIR "${DRACO_TEST_DATA_DIR}" #define DRACO_TEST_TEMP_DIR "${DRACO_TEST_TEMP_DIR}" +#define DRACO_TEST_ROOT_DIR "${DRACO_TEST_ROOT_DIR}" #endif // DRACO_TESTING_DRACO_TEST_CONFIG_H_ diff --git a/cmake/draco_tests.cmake b/cmake/draco_tests.cmake index 2d7f05e84..a8283e2d7 100644 --- a/cmake/draco_tests.cmake +++ b/cmake/draco_tests.cmake @@ -24,80 +24,86 @@ set(draco_factory_test_sources "${draco_src_root}/io/file_reader_factory_test.cc" "${draco_src_root}/io/file_writer_factory_test.cc") +list( + APPEND draco_test_common_sources + "${draco_src_root}/core/draco_test_base.h" + "${draco_src_root}/core/draco_test_utils.cc" + "${draco_src_root}/core/draco_test_utils.h" + "${draco_src_root}/core/status.cc") + list( APPEND - draco_test_sources - "${draco_src_root}/animation/keyframe_animation_encoding_test.cc" - "${draco_src_root}/animation/keyframe_animation_test.cc" - "${draco_src_root}/attributes/point_attribute_test.cc" - "${draco_src_root}/compression/attributes/point_d_vector_test.cc" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_test.cc" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_test.cc" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoding_test.cc" - "${draco_src_root}/compression/bit_coders/rans_coding_test.cc" - "${draco_src_root}/compression/decode_test.cc" - "${draco_src_root}/compression/encode_test.cc" - "${draco_src_root}/compression/entropy/shannon_entropy_test.cc" - "${draco_src_root}/compression/entropy/symbol_coding_test.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoding_test.cc" - "${draco_src_root}/compression/mesh/mesh_encoder_test.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoding_test.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoding_test.cc" - "${draco_src_root}/core/buffer_bit_coding_test.cc" - "${draco_src_root}/core/draco_test_base.h" - "${draco_src_root}/core/draco_test_utils.cc" - "${draco_src_root}/core/draco_test_utils.h" - "${draco_src_root}/core/math_utils_test.cc" - "${draco_src_root}/core/quantization_utils_test.cc" - "${draco_src_root}/core/status.cc" - "${draco_src_root}/core/status_test.cc" - "${draco_src_root}/core/vector_d_test.cc" - "${draco_src_root}/io/file_reader_test_common.h" - "${draco_src_root}/io/file_utils_test.cc" - "${draco_src_root}/io/file_writer_utils_test.cc" - "${draco_src_root}/io/stdio_file_reader_test.cc" - "${draco_src_root}/io/stdio_file_writer_test.cc" - "${draco_src_root}/io/obj_decoder_test.cc" - "${draco_src_root}/io/obj_encoder_test.cc" - "${draco_src_root}/io/ply_decoder_test.cc" - "${draco_src_root}/io/ply_reader_test.cc" - "${draco_src_root}/io/stl_decoder_test.cc" - "${draco_src_root}/io/stl_encoder_test.cc" - "${draco_src_root}/io/point_cloud_io_test.cc" - "${draco_src_root}/mesh/mesh_are_equivalent_test.cc" - "${draco_src_root}/mesh/mesh_cleanup_test.cc" - "${draco_src_root}/mesh/triangle_soup_mesh_builder_test.cc" - "${draco_src_root}/metadata/metadata_encoder_test.cc" - "${draco_src_root}/metadata/metadata_test.cc" - "${draco_src_root}/point_cloud/point_cloud_builder_test.cc" - "${draco_src_root}/point_cloud/point_cloud_test.cc") + draco_test_sources + "${draco_src_root}/animation/keyframe_animation_encoding_test.cc" + "${draco_src_root}/animation/keyframe_animation_test.cc" + "${draco_src_root}/attributes/point_attribute_test.cc" + "${draco_src_root}/compression/attributes/point_d_vector_test.cc" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_test.cc" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_test.cc" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoding_test.cc" + "${draco_src_root}/compression/bit_coders/rans_coding_test.cc" + "${draco_src_root}/compression/decode_test.cc" + "${draco_src_root}/compression/encode_test.cc" + "${draco_src_root}/compression/entropy/shannon_entropy_test.cc" + "${draco_src_root}/compression/entropy/symbol_coding_test.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoding_test.cc" + "${draco_src_root}/compression/mesh/mesh_encoder_test.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoding_test.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoding_test.cc" + "${draco_src_root}/core/buffer_bit_coding_test.cc" + "${draco_src_root}/core/math_utils_test.cc" + "${draco_src_root}/core/quantization_utils_test.cc" + "${draco_src_root}/core/status_test.cc" + "${draco_src_root}/core/vector_d_test.cc" + "${draco_src_root}/io/file_reader_test_common.h" + "${draco_src_root}/io/file_utils_test.cc" + "${draco_src_root}/io/file_writer_utils_test.cc" + "${draco_src_root}/io/stdio_file_reader_test.cc" + "${draco_src_root}/io/stdio_file_writer_test.cc" + "${draco_src_root}/io/obj_decoder_test.cc" + "${draco_src_root}/io/obj_encoder_test.cc" + "${draco_src_root}/io/ply_decoder_test.cc" + "${draco_src_root}/io/ply_reader_test.cc" + "${draco_src_root}/io/stl_decoder_test.cc" + "${draco_src_root}/io/stl_encoder_test.cc" + "${draco_src_root}/io/point_cloud_io_test.cc" + "${draco_src_root}/mesh/corner_table_test.cc" + "${draco_src_root}/mesh/mesh_are_equivalent_test.cc" + "${draco_src_root}/mesh/mesh_cleanup_test.cc" + "${draco_src_root}/mesh/triangle_soup_mesh_builder_test.cc" + "${draco_src_root}/metadata/metadata_encoder_test.cc" + "${draco_src_root}/metadata/metadata_test.cc" + "${draco_src_root}/point_cloud/point_cloud_builder_test.cc" + "${draco_src_root}/point_cloud/point_cloud_test.cc") if(DRACO_TRANSCODER_SUPPORTED) list( - APPEND - draco_test_sources - "${draco_src_root}/animation/animation_test.cc" - "${draco_src_root}/io/gltf_decoder_test.cc" - "${draco_src_root}/io/gltf_encoder_test.cc" - "${draco_src_root}/io/gltf_utils_test.cc" - "${draco_src_root}/io/gltf_test_helper.cc" - "${draco_src_root}/io/gltf_test_helper.h" - "${draco_src_root}/io/scene_io_test.cc" - "${draco_src_root}/io/texture_io_test.cc" - "${draco_src_root}/material/material_library_test.cc" - "${draco_src_root}/material/material_test.cc" - "${draco_src_root}/metadata/property_table_test.cc" - "${draco_src_root}/metadata/structural_metadata_test.cc" - "${draco_src_root}/scene/instance_array_test.cc" - "${draco_src_root}/scene/light_test.cc" - "${draco_src_root}/scene/mesh_group_test.cc" - "${draco_src_root}/scene/scene_test.cc" - "${draco_src_root}/scene/scene_are_equivalent_test.cc" - "${draco_src_root}/scene/scene_utils_test.cc" - "${draco_src_root}/scene/trs_matrix_test.cc" - "${draco_src_root}/texture/texture_library_test.cc" - "${draco_src_root}/texture/texture_map_test.cc" - "${draco_src_root}/texture/texture_transform_test.cc") + APPEND draco_test_sources + "${draco_src_root}/animation/animation_test.cc" + "${draco_src_root}/io/gltf_decoder_test.cc" + "${draco_src_root}/io/gltf_encoder_test.cc" + "${draco_src_root}/io/gltf_utils_test.cc" + "${draco_src_root}/io/gltf_test_helper.cc" + "${draco_src_root}/io/gltf_test_helper.h" + "${draco_src_root}/io/scene_io_test.cc" + "${draco_src_root}/io/texture_io_test.cc" + "${draco_src_root}/material/material_library_test.cc" + "${draco_src_root}/material/material_test.cc" + "${draco_src_root}/metadata/property_attribute_test.cc" + "${draco_src_root}/metadata/property_table_test.cc" + "${draco_src_root}/metadata/structural_metadata_test.cc" + "${draco_src_root}/metadata/structural_metadata_schema_test.cc" + "${draco_src_root}/scene/instance_array_test.cc" + "${draco_src_root}/scene/light_test.cc" + "${draco_src_root}/scene/mesh_group_test.cc" + "${draco_src_root}/scene/scene_test.cc" + "${draco_src_root}/scene/scene_are_equivalent_test.cc" + "${draco_src_root}/scene/scene_utils_test.cc" + "${draco_src_root}/scene/trs_matrix_test.cc" + "${draco_src_root}/texture/texture_library_test.cc" + "${draco_src_root}/texture/texture_map_test.cc" + "${draco_src_root}/texture/texture_transform_test.cc") + endif() macro(draco_setup_test_targets) @@ -110,6 +116,14 @@ macro(draco_setup_test_targets) list(APPEND draco_test_defines GTEST_HAS_PTHREAD=0) + draco_add_library( + TEST + NAME draco_test_common + TYPE STATIC + SOURCES ${draco_test_common_sources} + DEFINES ${draco_defines} ${draco_test_defines} + INCLUDES ${draco_test_include_paths}) + draco_add_library( TEST NAME draco_gtest @@ -128,6 +142,7 @@ macro(draco_setup_test_targets) set(DRACO_TEST_DATA_DIR "${draco_root}/testdata") set(DRACO_TEST_TEMP_DIR "${draco_build}/draco_test_temp") + set(DRACO_TEST_ROOT_DIR "${draco_root}") file(MAKE_DIRECTORY "${DRACO_TEST_TEMP_DIR}") # Sets DRACO_TEST_DATA_DIR and DRACO_TEST_TEMP_DIR. @@ -136,17 +151,23 @@ macro(draco_setup_test_targets) # Create the test targets. draco_add_executable( + TEST NAME draco_tests SOURCES ${draco_test_sources} DEFINES ${draco_defines} ${draco_test_defines} INCLUDES ${draco_test_include_paths} - LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main) + LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main + draco_test_common) draco_add_executable( + TEST NAME draco_factory_tests SOURCES ${draco_factory_test_sources} DEFINES ${draco_defines} ${draco_test_defines} INCLUDES ${draco_test_include_paths} - LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main) + LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main + draco_test_common) + + endif() endmacro() diff --git a/cmake/draco_variables.cmake b/cmake/draco_variables.cmake index d8f00f5b6..6d1b6a99d 100644 --- a/cmake/draco_variables.cmake +++ b/cmake/draco_variables.cmake @@ -55,16 +55,15 @@ endmacro() macro(draco_dump_cmake_flag_variables) unset(flag_variables) list(APPEND flag_variables "CMAKE_CXX_FLAGS_INIT" "CMAKE_CXX_FLAGS" - "CMAKE_EXE_LINKER_FLAGS_INIT" "CMAKE_EXE_LINKER_FLAGS") + "CMAKE_EXE_LINKER_FLAGS_INIT" "CMAKE_EXE_LINKER_FLAGS") if(CMAKE_BUILD_TYPE) list( - APPEND - flag_variables - "CMAKE_BUILD_TYPE" - "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}_INIT" - "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" - "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}_INIT" - "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}") + APPEND flag_variables + "CMAKE_BUILD_TYPE" + "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}_INIT" + "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" + "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}_INIT" + "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}") endif() foreach(flag_variable ${flag_variables}) message("${flag_variable}:${${flag_variable}}") diff --git a/docs/.ruby-version b/docs/.ruby-version index 005119baa..18091983f 100644 --- a/docs/.ruby-version +++ b/docs/.ruby-version @@ -1 +1 @@ -2.4.1 +3.4.0 diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 5b5687098..1712ab07a 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,268 +1,276 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.10) - i18n (~> 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + activesupport (7.2.2.1) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + base64 (0.2.0) + benchmark (0.4.1) + bigdecimal (3.2.2) coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.11.1) + coffee-script-source (1.12.2) colorator (1.1.0) - commonmarker (0.17.13) - ruby-enum (~> 0.5) - concurrent-ruby (1.1.9) - dnsruby (1.61.7) - simpleidn (~> 0.1) + commonmarker (0.23.11) + concurrent-ruby (1.3.5) + connection_pool (2.5.3) + csv (3.3.5) + dnsruby (1.72.4) + base64 (~> 0.2.0) + logger (~> 1.6.5) + simpleidn (~> 0.2.1) + drb (2.2.3) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) - ethon (0.15.0) + ethon (0.16.0) ffi (>= 1.15.0) eventmachine (1.2.7) - execjs (2.7.0) - faraday (1.8.0) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0.1) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - multipart-post (>= 1.2, < 3) - ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - ffi (1.15.4) + execjs (2.10.0) + faraday (2.13.3) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-net_http (3.4.1) + net-http (>= 0.5.0) + ffi (1.17.2) forwardable-extended (2.6.0) - gemoji (3.0.0) - github-pages (197) - activesupport (= 4.2.10) - github-pages-health-check (= 1.16.1) - jekyll (= 3.7.4) - jekyll-avatar (= 0.6.0) - jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.1.5) - jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.11.0) + gemoji (4.1.0) + github-pages (232) + github-pages-health-check (= 1.18.2) + jekyll (= 3.10.0) + jekyll-avatar (= 0.8.0) + jekyll-coffeescript (= 1.2.2) + jekyll-commonmark-ghpages (= 0.5.1) + jekyll-default-layout (= 0.1.5) + jekyll-feed (= 0.17.0) jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.12.1) - jekyll-mentions (= 1.4.1) - jekyll-optional-front-matter (= 0.3.0) + jekyll-github-metadata (= 2.16.1) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.2.0) - jekyll-redirect-from (= 0.14.0) - jekyll-relative-links (= 0.6.0) - jekyll-remote-theme (= 0.3.1) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.5.0) - jekyll-sitemap (= 1.2.0) - jekyll-swiss (= 0.4.0) - jekyll-theme-architect (= 0.1.1) - jekyll-theme-cayman (= 0.1.1) - jekyll-theme-dinky (= 0.1.1) - jekyll-theme-hacker (= 0.1.1) - jekyll-theme-leap-day (= 0.1.1) - jekyll-theme-merlot (= 0.1.1) - jekyll-theme-midnight (= 0.1.1) - jekyll-theme-minimal (= 0.1.1) - jekyll-theme-modernist (= 0.1.1) - jekyll-theme-primer (= 0.5.3) - jekyll-theme-slate (= 0.1.1) - jekyll-theme-tactile (= 0.1.1) - jekyll-theme-time-machine (= 0.1.1) - jekyll-titles-from-headings (= 0.5.1) - jemoji (= 0.10.2) - kramdown (= 1.17.0) - liquid (= 4.0.0) - listen (= 3.1.5) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.13.0) + kramdown (= 2.4.0) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.4) mercenary (~> 0.3) - minima (= 2.5.0) - nokogiri (>= 1.8.5, < 2.0) - rouge (= 2.2.1) + minima (= 2.5.1) + nokogiri (>= 1.16.2, < 2.0) + rouge (= 3.30.0) terminal-table (~> 1.4) - github-pages-health-check (1.16.1) + webrick (~> 1.8) + github-pages-health-check (1.18.2) addressable (~> 2.3) dnsruby (~> 1.60) - octokit (~> 4.0) - public_suffix (~> 3.0) + octokit (>= 4, < 8) + public_suffix (>= 3.0, < 6.0) typhoeus (~> 1.3) - html-pipeline (2.10.0) + html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) http_parser.rb (0.8.0) - i18n (0.9.5) + i18n (1.14.7) concurrent-ruby (~> 1.0) - jekyll (3.7.4) + jekyll (3.10.0) addressable (~> 2.4) colorator (~> 1.0) + csv (~> 3.0) em-websocket (~> 0.5) - i18n (~> 0.7) + i18n (>= 0.7, < 2) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 2.0) - kramdown (~> 1.14) + kramdown (>= 1.17, < 3) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-avatar (0.6.0) - jekyll (~> 3.0) - jekyll-coffeescript (1.1.1) + webrick (>= 1.0) + jekyll-avatar (0.8.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.2.2) coffee-script (~> 2.2) - coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.2.0) - commonmarker (~> 0.14) - jekyll (>= 3.0, < 4.0) - jekyll-commonmark-ghpages (0.1.5) - commonmarker (~> 0.17.6) - jekyll-commonmark (~> 1) - rouge (~> 2) - jekyll-default-layout (0.1.4) - jekyll (~> 3.0) - jekyll-feed (0.11.0) - jekyll (~> 3.3) + coffee-script-source (~> 1.12) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.5.1) + commonmarker (>= 0.23.7, < 1.1.0) + jekyll (>= 3.9, < 4.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 5.0) + jekyll-default-layout (0.1.5) + jekyll (>= 3.0, < 5.0) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-github-metadata (2.12.1) - jekyll (~> 3.4) - octokit (~> 4.0, != 4.4.0) - jekyll-mentions (1.4.1) + jekyll-github-metadata (2.16.1) + jekyll (>= 3.4, < 5.0) + octokit (>= 4, < 7, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) html-pipeline (~> 2.3) - jekyll (~> 3.0) - jekyll-optional-front-matter (0.3.0) - jekyll (~> 3.0) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) jekyll-paginate (1.1.0) - jekyll-readme-index (0.2.0) - jekyll (~> 3.0) - jekyll-redirect-from (0.14.0) - jekyll (~> 3.3) - jekyll-relative-links (0.6.0) - jekyll (~> 3.3) - jekyll-remote-theme (0.3.1) - jekyll (~> 3.5) - rubyzip (>= 1.2.1, < 3.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.5.0) - jekyll (~> 3.3) - jekyll-sitemap (1.2.0) - jekyll (~> 3.3) - jekyll-swiss (0.4.0) - jekyll-theme-architect (0.1.1) - jekyll (~> 3.5) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.1.1) - jekyll (~> 3.5) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.1.1) - jekyll (~> 3.5) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.1.1) - jekyll (~> 3.5) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.1.1) - jekyll (~> 3.5) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.1.1) - jekyll (~> 3.5) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.1.1) - jekyll (~> 3.5) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.1.1) - jekyll (~> 3.5) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.1.1) - jekyll (~> 3.5) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.3) - jekyll (~> 3.5) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) jekyll-github-metadata (~> 2.9) jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.1.1) - jekyll (~> 3.5) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.1.1) - jekyll (~> 3.5) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.1.1) - jekyll (~> 3.5) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.1) - jekyll (~> 3.3) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.10.2) - gemoji (~> 3.0) + jemoji (0.13.0) + gemoji (>= 3, < 5) html-pipeline (~> 2.2) - jekyll (~> 3.0) - kramdown (1.17.0) - liquid (4.0.0) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) + jekyll (>= 3.0, < 5.0) + json (2.13.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + logger (1.6.6) mercenary (0.3.6) - mini_portile2 (2.8.0) - minima (2.5.0) - jekyll (~> 3.5) + mini_portile2 (2.8.9) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.11.3) - multipart-post (2.1.1) - nokogiri (1.13.6) - mini_portile2 (~> 2.8.0) + minitest (5.25.5) + net-http (0.6.0) + uri + nokogiri (1.18.9) + mini_portile2 (~> 2.8.2) racc (~> 1.4) - octokit (4.21.0) - faraday (>= 0.9) - sawyer (~> 0.8.0, >= 0.5.3) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.1.1) - racc (1.6.0) - rb-fsevent (0.11.0) - rb-inotify (0.10.1) + public_suffix (5.1.1) + racc (1.8.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) ffi (~> 1.0) - rouge (2.2.1) - ruby-enum (0.7.2) - i18n - ruby2_keywords (0.0.5) - ruby_dep (1.5.0) - rubyzip (2.1.0) + rexml (3.4.1) + rouge (3.30.0) + rubyzip (2.4.1) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.8.2) + sawyer (0.9.2) addressable (>= 2.3.5) - faraday (> 0.8, < 2.0) - simpleidn (0.2.1) - unf (~> 0.1.4) + faraday (>= 0.17.3, < 3) + securerandom (0.4.1) + simpleidn (0.2.3) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - typhoeus (1.4.0) + typhoeus (1.4.1) ethon (>= 0.9.0) - tzinfo (1.2.10) - thread_safe (~> 0.1) - unf (0.1.4) - unf_ext - unf_ext (0.0.8) - unicode-display_width (1.5.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (1.8.0) + uri (1.0.3) + webrick (1.9.1) PLATFORMS ruby @@ -271,4 +279,4 @@ DEPENDENCIES github-pages BUNDLED WITH - 2.0.1 + 2.5.17 diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html index 9510aec01..d6636d83a 100644 --- a/docs/_layouts/home.html +++ b/docs/_layouts/home.html @@ -63,7 +63,7 @@