summaryrefslogtreecommitdiff
path: root/libs/assimp/contrib/draco/cmake/draco_options.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'libs/assimp/contrib/draco/cmake/draco_options.cmake')
-rw-r--r--libs/assimp/contrib/draco/cmake/draco_options.cmake239
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()