diff options
Diffstat (limited to 'libs/assimp/contrib/draco/cmake/draco_options.cmake')
-rw-r--r-- | libs/assimp/contrib/draco/cmake/draco_options.cmake | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/libs/assimp/contrib/draco/cmake/draco_options.cmake b/libs/assimp/contrib/draco/cmake/draco_options.cmake deleted file mode 100644 index 832bfb6..0000000 --- a/libs/assimp/contrib/draco/cmake/draco_options.cmake +++ /dev/null @@ -1,239 +0,0 @@ -if(DRACO_CMAKE_DRACO_OPTIONS_CMAKE_) - return() -endif() # DRACO_CMAKE_DRACO_OPTIONS_CMAKE_ -set(DRACO_CMAKE_DRACO_OPTIONS_CMAKE_) - -set(draco_features_file_name "${draco_build}/draco/draco_features.h") -set(draco_features_list) - -# Simple wrapper for CMake's builtin option command that tracks draco's build -# options in the list variable $draco_options. -macro(draco_option) - unset(option_NAME) - unset(option_HELPSTRING) - unset(option_VALUE) - unset(optional_args) - unset(multi_value_args) - set(single_value_args NAME HELPSTRING VALUE) - cmake_parse_arguments(option "${optional_args}" "${single_value_args}" - "${multi_value_args}" ${ARGN}) - - if(NOT (option_NAME AND option_HELPSTRING AND DEFINED option_VALUE)) - message(FATAL_ERROR "draco_option: NAME HELPSTRING and VALUE required.") - endif() - - option(${option_NAME} ${option_HELPSTRING} ${option_VALUE}) - - if(DRACO_VERBOSE GREATER 2) - message("--------- draco_option ---------\n" "option_NAME=${option_NAME}\n" - "option_HELPSTRING=${option_HELPSTRING}\n" - "option_VALUE=${option_VALUE}\n" - "------------------------------------------\n") - endif() - - list(APPEND draco_options ${option_NAME}) - list(REMOVE_DUPLICATES draco_options) -endmacro() - -# Dumps the $draco_options list via CMake message command. -macro(draco_dump_options) - foreach(option_name ${draco_options}) - message("${option_name}: ${${option_name}}") - endforeach() -endmacro() - -# Set default options. -macro(draco_set_default_options) - draco_option(NAME DRACO_FAST HELPSTRING "Try to build faster libs." VALUE OFF) - draco_option(NAME DRACO_JS_GLUE HELPSTRING - "Enable JS Glue and JS targets when using Emscripten." VALUE ON) - draco_option(NAME DRACO_IE_COMPATIBLE HELPSTRING - "Enable support for older IE builds when using Emscripten." VALUE - OFF) - draco_option(NAME DRACO_MESH_COMPRESSION HELPSTRING "Enable mesh compression." - VALUE ON) - draco_option(NAME DRACO_POINT_CLOUD_COMPRESSION HELPSTRING - "Enable point cloud compression." VALUE ON) - draco_option(NAME DRACO_PREDICTIVE_EDGEBREAKER HELPSTRING - "Enable predictive edgebreaker." VALUE ON) - draco_option(NAME DRACO_STANDARD_EDGEBREAKER HELPSTRING - "Enable stand edgebreaker." VALUE ON) - draco_option(NAME DRACO_BACKWARDS_COMPATIBILITY HELPSTRING - "Enable backwards compatibility." VALUE ON) - draco_option(NAME DRACO_DECODER_ATTRIBUTE_DEDUPLICATION HELPSTRING - "Enable attribute deduping." VALUE OFF) - draco_option(NAME DRACO_TESTS HELPSTRING "Enables tests." VALUE OFF) - draco_option(NAME DRACO_WASM HELPSTRING "Enables WASM support." VALUE OFF) - draco_option(NAME DRACO_UNITY_PLUGIN HELPSTRING - "Build plugin library for Unity." VALUE OFF) - draco_option(NAME DRACO_ANIMATION_ENCODING HELPSTRING "Enable animation." - VALUE OFF) - draco_option(NAME DRACO_GLTF HELPSTRING "Support GLTF." VALUE OFF) - draco_option(NAME DRACO_MAYA_PLUGIN HELPSTRING - "Build plugin library for Maya." VALUE OFF) - draco_check_deprecated_options() -endmacro() - -# Warns when a deprecated option is used and sets the option that replaced it. -macro(draco_handle_deprecated_option) - unset(option_OLDNAME) - unset(option_NEWNAME) - unset(optional_args) - unset(multi_value_args) - set(single_value_args OLDNAME NEWNAME) - cmake_parse_arguments(option "${optional_args}" "${single_value_args}" - "${multi_value_args}" ${ARGN}) - - if("${${option_OLDNAME}}") - message(WARNING "${option_OLDNAME} is deprecated. Use ${option_NEWNAME}.") - set(${option_NEWNAME} ${${option_OLDNAME}}) - endif() -endmacro() - -# Checks for use of deprecated options. -macro(draco_check_deprecated_options) - draco_handle_deprecated_option(OLDNAME ENABLE_EXTRA_SPEED NEWNAME DRACO_FAST) - draco_handle_deprecated_option(OLDNAME ENABLE_JS_GLUE NEWNAME DRACO_JS_GLUE) - draco_handle_deprecated_option(OLDNAME ENABLE_MESH_COMPRESSION NEWNAME - DRACO_MESH_COMPRESSION) - draco_handle_deprecated_option(OLDNAME ENABLE_POINT_CLOUD_COMPRESSION NEWNAME - DRACO_POINT_CLOUD_COMPRESSION) - draco_handle_deprecated_option(OLDNAME ENABLE_PREDICTIVE_EDGEBREAKER NEWNAME - DRACO_PREDICTIVE_EDGEBREAKER) - draco_handle_deprecated_option(OLDNAME ENABLE_STANDARD_EDGEBREAKER NEWNAME - DRACO_STANDARD_EDGEBREAKER) - draco_handle_deprecated_option(OLDNAME ENABLE_BACKWARDS_COMPATIBILITY NEWNAME - DRACO_BACKWARDS_COMPATIBILITY) - draco_handle_deprecated_option(OLDNAME ENABLE_DECODER_ATTRIBUTE_DEDUPLICATION - NEWNAME DRACO_DECODER_ATTRIBUTE_DEDUPLICATION) - draco_handle_deprecated_option(OLDNAME ENABLE_TESTS NEWNAME DRACO_TESTS) - draco_handle_deprecated_option(OLDNAME ENABLE_WASM NEWNAME DRACO_WASM) - draco_handle_deprecated_option(OLDNAME BUILD_UNITY_PLUGIN NEWNAME - DRACO_UNITY_PLUGIN) - draco_handle_deprecated_option(OLDNAME BUILD_ANIMATION_ENCODING NEWNAME - DRACO_ANIMATION_ENCODING) - draco_handle_deprecated_option(OLDNAME BUILD_FOR_GLTF NEWNAME DRACO_GLTF) - draco_handle_deprecated_option(OLDNAME BUILD_MAYA_PLUGIN NEWNAME - DRACO_MAYA_PLUGIN) - draco_handle_deprecated_option(OLDNAME BUILD_USD_PLUGIN NEWNAME - BUILD_SHARED_LIBS) - -endmacro() - -# Macro for setting Draco features based on user configuration. Features enabled -# by this macro are Draco global. -macro(draco_set_optional_features) - if(DRACO_GLTF) - # Override settings when building for GLTF. - draco_enable_feature(FEATURE "DRACO_MESH_COMPRESSION_SUPPORTED") - draco_enable_feature(FEATURE "DRACO_NORMAL_ENCODING_SUPPORTED") - draco_enable_feature(FEATURE "DRACO_STANDARD_EDGEBREAKER_SUPPORTED") - else() - if(DRACO_POINT_CLOUD_COMPRESSION) - draco_enable_feature(FEATURE "DRACO_POINT_CLOUD_COMPRESSION_SUPPORTED") - endif() - if(DRACO_MESH_COMPRESSION) - draco_enable_feature(FEATURE "DRACO_MESH_COMPRESSION_SUPPORTED") - draco_enable_feature(FEATURE "DRACO_NORMAL_ENCODING_SUPPORTED") - - if(DRACO_STANDARD_EDGEBREAKER) - draco_enable_feature(FEATURE "DRACO_STANDARD_EDGEBREAKER_SUPPORTED") - endif() - if(DRACO_PREDICTIVE_EDGEBREAKER) - draco_enable_feature(FEATURE "DRACO_PREDICTIVE_EDGEBREAKER_SUPPORTED") - endif() - endif() - - if(DRACO_BACKWARDS_COMPATIBILITY) - draco_enable_feature(FEATURE "DRACO_BACKWARDS_COMPATIBILITY_SUPPORTED") - endif() - - - if(NOT EMSCRIPTEN) - # For now, enable deduplication for both encoder and decoder. - # TODO(ostava): Support for disabling attribute deduplication for the C++ - # decoder is planned in future releases. - draco_enable_feature(FEATURE - DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED) - draco_enable_feature(FEATURE - DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED) - endif() - endif() - - if(DRACO_UNITY_PLUGIN) - draco_enable_feature(FEATURE "DRACO_UNITY_PLUGIN") - set(CMAKE_POSITION_INDEPENDENT_CODE ON) - endif() - - if(DRACO_MAYA_PLUGIN) - draco_enable_feature(FEATURE "DRACO_MAYA_PLUGIN") - set(CMAKE_POSITION_INDEPENDENT_CODE ON) - endif() - -endmacro() - -# Macro that handles tracking of Draco preprocessor symbols for the purpose of -# producing draco_features.h. -# -# ~~~ -# draco_enable_feature(FEATURE <feature_name> [TARGETS <target_name>]) -# ~~~ -# -# FEATURE is required. It should be a Draco preprocessor symbol. TARGETS is -# optional. It can be one or more draco targets. -# -# When the TARGETS argument is not present the preproc symbol is added to -# draco_features.h. When it is draco_features.h is unchanged, and -# target_compile_options() is called for each target specified. -macro(draco_enable_feature) - set(def_flags) - set(def_single_arg_opts FEATURE) - set(def_multi_arg_opts TARGETS) - cmake_parse_arguments(DEF "${def_flags}" "${def_single_arg_opts}" - "${def_multi_arg_opts}" ${ARGN}) - if("${DEF_FEATURE}" STREQUAL "") - message(FATAL_ERROR "Empty FEATURE passed to draco_enable_feature().") - endif() - - # Do nothing/return early if $DEF_FEATURE is already in the list. - list(FIND draco_features_list ${DEF_FEATURE} df_index) - if(NOT df_index EQUAL -1) - return() - endif() - - list(LENGTH DEF_TARGETS df_targets_list_length) - if(${df_targets_list_length} EQUAL 0) - list(APPEND draco_features_list ${DEF_FEATURE}) - else() - foreach(target ${DEF_TARGETS}) - target_compile_definitions(${target} PRIVATE ${DEF_FEATURE}) - endforeach() - endif() -endmacro() - -# Function for generating draco_features.h. -function(draco_generate_features_h) - file(WRITE "${draco_features_file_name}.new" - "// GENERATED FILE -- DO NOT EDIT\n\n" "#ifndef DRACO_FEATURES_H_\n" - "#define DRACO_FEATURES_H_\n\n") - - foreach(feature ${draco_features_list}) - file(APPEND "${draco_features_file_name}.new" "#define ${feature}\n") - endforeach() - - file(APPEND "${draco_features_file_name}.new" - "\n#endif // DRACO_FEATURES_H_") - - # Will replace ${draco_features_file_name} only if the file content has - # changed. This prevents forced Draco rebuilds after CMake runs. - configure_file("${draco_features_file_name}.new" - "${draco_features_file_name}") - file(REMOVE "${draco_features_file_name}.new") -endfunction() - -# Sets default options for the build and processes user controlled options to -# compute enabled features. -macro(draco_setup_options) - draco_set_default_options() - draco_set_optional_features() -endmacro() |