| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156 |
- # 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(MSVC)
- # 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()
|