Files
jak-project/third-party/draco/CMakeLists.txt
T
Hat Kid 348bf83b89 custom levels: add draco lib to support compressed glb files (#3723)
By adding the `draco` library as a dependency, `tinygltf` can support
GLB files compressed with the Draco compression algorithm which allows
for drastically reduced file sizes for custom levels (TFL's Crescent Top
GLB for example went from 135 MB to 37 MB).
2024-10-28 21:11:19 +01:00

1157 lines
49 KiB
CMake
Vendored
Generated

# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# 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)
set(CMAKE_BUILD_TYPE Release)
endif()
set(draco_root "${CMAKE_CURRENT_SOURCE_DIR}")
set(draco_src_root "${draco_root}/src/draco")
set(draco_build "${CMAKE_BINARY_DIR}")
if("${draco_root}" STREQUAL "${draco_build}")
message(
FATAL_ERROR
"Building from within the Draco source tree is not supported.\n"
"Hint: Run these commands\n"
"$ rm -rf CMakeCache.txt CMakeFiles\n"
"$ mkdir -p ../draco_build\n"
"$ cd ../draco_build\n"
"And re-run CMake from the draco_build directory.")
endif()
include(FindPythonInterp)
include("${draco_root}/cmake/draco_build_definitions.cmake")
include("${draco_root}/cmake/draco_cpu_detection.cmake")
include("${draco_root}/cmake/draco_dependencies.cmake")
include("${draco_root}/cmake/draco_emscripten.cmake")
include("${draco_root}/cmake/draco_flags.cmake")
include("${draco_root}/cmake/draco_helpers.cmake")
include("${draco_root}/cmake/draco_install.cmake")
include("${draco_root}/cmake/draco_intrinsics.cmake")
include("${draco_root}/cmake/draco_options.cmake")
include("${draco_root}/cmake/draco_sanitizer.cmake")
include("${draco_root}/cmake/draco_targets.cmake")
include("${draco_root}/cmake/draco_tests.cmake")
include("${draco_root}/cmake/draco_variables.cmake")
# C++ and linker flags.
draco_track_configuration_variable(DRACO_CXX_FLAGS)
draco_track_configuration_variable(DRACO_EXE_LINKER_FLAGS)
# Sanitizer integration.
draco_track_configuration_variable(DRACO_SANITIZE)
# Generated source file directory.
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()
draco_dump_options()
endif()
# Compiler/linker flags must be lists, but come in from the environment as
# strings. Break them up:
if(NOT "${DRACO_CXX_FLAGS}" STREQUAL "")
separate_arguments(DRACO_CXX_FLAGS)
endif()
if(NOT "${DRACO_EXE_LINKER_FLAGS}" STREQUAL "")
separate_arguments(DRACO_EXE_LINKER_FLAGS)
endif()
draco_reset_target_lists()
draco_setup_options()
draco_set_build_definitions()
draco_set_cxx_flags()
draco_set_exe_linker_flags()
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")
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"
)
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"
)
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"
)
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"
)
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")
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")
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")
list(APPEND draco_compression_options_sources
"${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")
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")
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")
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")
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")
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"
)
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"
)
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")
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")
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")
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")
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")
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")
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"
)
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"
)
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_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")
list(APPEND draco_metadata_dec_sources
"${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")
list(APPEND draco_animation_enc_sources
"${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")
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_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"
)
list(APPEND draco_unity_plug_sources
"${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")
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")
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")
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")
list(
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")
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")
endif()
#
# Draco targets.
#
if(EMSCRIPTEN AND DRACO_JS_GLUE)
# Draco decoder and encoder "executable" targets in various flavors for
# Emscripten.
if(DRACO_TRANSCODER_SUPPORTED)
message(FATAL_ERROR "The transcoder is not supported in Emscripten.")
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})
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})
list(APPEND draco_js_dec_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")
list(
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")
list(APPEND draco_pre_link_js_sources
"${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")
list(APPEND draco_post_link_js_decoder_sources ${draco_post_link_js_sources}
"${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")
draco_generate_emscripten_glue(INPUT_IDL ${draco_js_dec_idl}
OUTPUT_PATH ${draco_decoder_glue_path})
draco_generate_emscripten_glue(INPUT_IDL ${draco_js_enc_idl}
OUTPUT_PATH ${draco_encoder_glue_path})
if(DRACO_DECODER_ATTRIBUTE_DEDUPLICATION)
list(APPEND draco_decoder_features
"DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED"
"DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED")
endif()
draco_add_emscripten_executable(
NAME draco_decoder
SOURCES ${draco_decoder_src}
DEFINES ${draco_defines}
FEATURES ${draco_decoder_features}
INCLUDES ${draco_include_paths}
LINK_FLAGS "-sEXPORT_NAME=\"DracoDecoderModule\""
GLUE_PATH ${draco_decoder_glue_path}
PRE_LINK_JS_SOURCES ${draco_pre_link_js_sources}
POST_LINK_JS_SOURCES ${draco_post_link_js_decoder_sources})
draco_add_emscripten_executable(
NAME draco_encoder
SOURCES ${draco_encoder_src}
DEFINES ${draco_defines}
FEATURES DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED
DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED
INCLUDES ${draco_include_paths}
LINK_FLAGS "-sEXPORT_NAME=\"DracoEncoderModule\""
GLUE_PATH ${draco_encoder_glue_path}
PRE_LINK_JS_SOURCES ${draco_pre_link_js_sources}
POST_LINK_JS_SOURCES ${draco_post_link_js_sources})
if(DRACO_ANIMATION_ENCODING)
set(draco_anim_decoder_glue_path "${draco_build}/glue_animation_decoder")
set(draco_anim_encoder_glue_path "${draco_build}/glue_animation_encoder")
draco_generate_emscripten_glue(INPUT_IDL ${draco_animation_js_dec_idl}
OUTPUT_PATH ${draco_anim_decoder_glue_path})
draco_generate_emscripten_glue(INPUT_IDL ${draco_animation_js_enc_idl}
OUTPUT_PATH ${draco_anim_encoder_glue_path})
draco_add_emscripten_executable(
NAME draco_animation_decoder
SOURCES ${draco_animation_dec_sources} ${draco_animation_js_dec_sources}
${draco_animation_sources} ${draco_decoder_src}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths}
LINK_FLAGS "-sEXPORT_NAME=\"DracoAnimationDecoderModule\""
GLUE_PATH ${draco_anim_decoder_glue_path}
PRE_LINK_JS_SOURCES ${draco_pre_link_js_sources}
POST_LINK_JS_SOURCES ${draco_post_link_js_decoder_sources})
draco_add_emscripten_executable(
NAME draco_animation_encoder
SOURCES ${draco_animation_enc_sources} ${draco_animation_js_enc_sources}
${draco_animation_sources} ${draco_encoder_src}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths}
LINK_FLAGS "-sEXPORT_NAME=\"DracoAnimationEncoderModule\""
GLUE_PATH ${draco_anim_encoder_glue_path}
PRE_LINK_JS_SOURCES ${draco_pre_link_js_sources}
POST_LINK_JS_SOURCES ${draco_post_link_js_sources})
endif()
else()
# Standard Draco libs, encoder and decoder. Object collections that mirror the
# Draco directory structure.
draco_add_library(
NAME draco_attributes
TYPE OBJECT
SOURCES ${draco_attributes_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_attributes_dec OBJECT
${draco_compression_attributes_dec_sources}
TYPE OBJECT
SOURCES ${draco_compression_attributes_dec_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_attributes_enc
TYPE OBJECT
SOURCES ${draco_compression_attributes_enc_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_attributes_pred_schemes_dec
TYPE OBJECT
SOURCES ${draco_compression_attributes_pred_schemes_dec_sources})
draco_add_library(
NAME draco_compression_attributes_pred_schemes_enc
TYPE OBJECT
SOURCES ${draco_compression_attributes_pred_schemes_enc_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_bit_coders
TYPE OBJECT
SOURCES ${draco_compression_bit_coders_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_enc_config
TYPE OBJECT
SOURCES ${draco_enc_config_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_dec_config
TYPE OBJECT
SOURCES ${draco_dec_config_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_decode
TYPE OBJECT
SOURCES ${draco_compression_decode_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_encode
TYPE OBJECT
SOURCES ${draco_compression_encode_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_entropy
TYPE OBJECT
SOURCES ${draco_compression_entropy_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_mesh_traverser
TYPE OBJECT
SOURCES ${draco_compression_mesh_traverser_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_mesh_dec
TYPE OBJECT
SOURCES ${draco_compression_mesh_dec_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_mesh_enc
TYPE OBJECT
SOURCES ${draco_compression_mesh_enc_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_options
TYPE OBJECT
SOURCES ${draco_compression_options_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_point_cloud_dec
TYPE OBJECT
SOURCES ${draco_compression_point_cloud_dec_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_compression_point_cloud_enc
TYPE OBJECT
SOURCES ${draco_compression_point_cloud_enc_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_core
TYPE OBJECT
SOURCES ${draco_core_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_io
TYPE OBJECT
SOURCES ${draco_io_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_mesh
TYPE OBJECT
SOURCES ${draco_mesh_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_metadata_dec
TYPE OBJECT
SOURCES ${draco_metadata_dec_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_metadata_enc
TYPE OBJECT
SOURCES ${draco_metadata_enc_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_metadata
TYPE OBJECT
SOURCES ${draco_metadata_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_animation_dec
TYPE OBJECT
SOURCES ${draco_animation_dec_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_animation_enc
TYPE OBJECT
SOURCES ${draco_animation_enc_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_animation
TYPE OBJECT
SOURCES ${draco_animation_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_point_cloud
TYPE OBJECT
SOURCES ${draco_point_cloud_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_points_dec
TYPE OBJECT
SOURCES ${draco_points_common_sources} ${draco_points_dec_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_points_enc
TYPE OBJECT
SOURCES ${draco_points_common_sources} ${draco_points_enc_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
if(DRACO_TRANSCODER_SUPPORTED)
if(MSVC)
# TODO(https://github.com/google/draco/issues/826)
set_source_files_properties("${draco_src_root}/io/gltf_decoder.cc"
PROPERTIES COMPILE_OPTIONS "/Od")
endif()
draco_add_library(
NAME draco_material
TYPE OBJECT
SOURCES ${draco_material_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_scene
TYPE OBJECT
SOURCES ${draco_scene_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_texture
TYPE OBJECT
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)
if(DRACO_TRANSCODER_SUPPORTED)
list(APPEND draco_object_library_deps draco_material draco_scene
draco_texture)
endif()
# Library targets that consume the object collections.
if(WIN32)
# In order to produce a DLL and import library the Windows tools require
# that the exported symbols are part of the DLL target. The unfortunate side
# effect of this is that a single configuration cannot output both the
# static library and the DLL: This results in an either/or situation.
# Windows users of the draco build can have a DLL and an import library, or
# they can have a static library; they cannot have both from a single
# configuration of the build.
if(BUILD_SHARED_LIBS)
set(draco_lib_type SHARED)
else()
set(draco_lib_type STATIC)
endif()
draco_add_library(
NAME draco
OUTPUT_NAME draco
TYPE ${draco_lib_type}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths}
OBJLIB_DEPS ${draco_object_library_deps}
LIB_DEPS ${draco_lib_deps})
add_library(draco::draco ALIAS draco)
else()
draco_add_library(
NAME draco_static
OUTPUT_NAME draco
TYPE STATIC
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths}
OBJLIB_DEPS ${draco_object_library_deps}
LIB_DEPS ${draco_lib_deps})
if(BUILD_SHARED_LIBS)
draco_add_library(
NAME draco_shared
SOURCES "${draco_src_root}/core/draco_version.h"
OUTPUT_NAME draco
TYPE SHARED
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths}
LIB_DEPS draco_static)
add_library(draco::draco ALIAS draco_shared)
set_target_properties(draco_shared PROPERTIES EXPORT_NAME draco)
else()
add_library(draco::draco ALIAS draco_static)
set_target_properties(draco_static PROPERTIES EXPORT_NAME draco)
endif()
endif()
if(DRACO_UNITY_PLUGIN)
if(IOS)
set(unity_decoder_lib_type STATIC)
else()
set(unity_decoder_lib_type MODULE)
endif()
draco_add_library(
NAME draco_unity_plugin
TYPE OBJECT
SOURCES ${draco_unity_plug_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME dracodec_unity
TYPE ${unity_decoder_lib_type}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths}
OBJLIB_DEPS draco_unity_plugin
LIB_DEPS ${draco_plugin_dependency})
# For Mac, we need to build a .bundle for the unity plugin.
if(APPLE)
set_target_properties(dracodec_unity PROPERTIES BUNDLE true)
endif()
endif()
if(DRACO_MAYA_PLUGIN)
draco_add_library(
NAME draco_maya_plugin
TYPE OBJECT
SOURCES ${draco_maya_plug_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths})
draco_add_library(
NAME draco_maya_wrapper
TYPE MODULE
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths}
OBJLIB_DEPS draco_maya_plugin
LIB_DEPS ${draco_plugin_dependency})
# For Mac, we need to build a .bundle for the plugin.
if(APPLE)
set_target_properties(draco_maya_wrapper PROPERTIES BUNDLE true)
endif()
endif()
# Draco app targets.
draco_add_executable(
NAME draco_decoder
SOURCES "${draco_src_root}/tools/draco_decoder.cc" ${draco_io_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths}
LIB_DEPS ${draco_dependency})
draco_add_executable(
NAME draco_encoder
SOURCES "${draco_src_root}/tools/draco_encoder.cc" ${draco_io_sources}
DEFINES ${draco_defines}
INCLUDES ${draco_include_paths}
LIB_DEPS ${draco_dependency})
if(DRACO_TRANSCODER_SUPPORTED)
draco_add_executable(
NAME draco_transcoder
SOURCES "${draco_src_root}/tools/draco_transcoder.cc"
"${draco_src_root}/tools/draco_transcoder_lib.cc"
"${draco_src_root}/tools/draco_transcoder_lib.h"
${draco_io_sources}
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()
draco_setup_test_targets()
endif()
if(DRACO_VERBOSE)
draco_dump_cmake_flag_variables()
draco_dump_tracked_configuration_variables()
draco_dump_options()
endif()