mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-04-24 06:39:57 +08:00

-Increase version to 1.0.1 -Update Javascript decode timing example -Fix async creation of DracoDecoderModule -fixes wasm parallel decoding -Introduce base class for geometric normal predictor -Added integer attribute interface to JavaScript decoder -Move loading Draco decoder into three.js Draco loader -Add compiler launcher support to CMake build -Add sanitizer support via CMake build -Check we are not reading past the end of the attribute buffer
56 lines
2.5 KiB
CMake
56 lines
2.5 KiB
CMake
if (NOT DRACO_CMAKE_UTIL_CMAKE_)
|
|
set(DRACO_CMAKE_UTIL_CMAKE_ 1)
|
|
|
|
# Creates dummy source file in $draco_build_dir named $basename.$extension and
|
|
# returns the full path to the dummy source file via the $out_file_path
|
|
# parameter.
|
|
function (create_dummy_source_file basename extension out_file_path)
|
|
set(dummy_source_file "${draco_build_dir}/${basename}.${extension}")
|
|
file(WRITE "${dummy_source_file}"
|
|
"// Generated file. DO NOT EDIT!\n"
|
|
"// ${target_name} needs a ${extension} file to force link language, \n"
|
|
"// or to silence a harmless CMake warning: Ignore me.\n"
|
|
"void ${target_name}_dummy_function(void) {}\n")
|
|
set(${out_file_path} ${dummy_source_file} PARENT_SCOPE)
|
|
endfunction ()
|
|
|
|
# Convenience function for adding a dummy source file to $target_name using
|
|
# $extension as the file extension. Wraps create_dummy_source_file().
|
|
function (add_dummy_source_file_to_target target_name extension)
|
|
create_dummy_source_file("${target_name}" "${extension}" "dummy_source_file")
|
|
target_sources(${target_name} PRIVATE ${dummy_source_file})
|
|
endfunction ()
|
|
|
|
# Extracts the version number from $version_file and returns it to the user via
|
|
# $version_string_out_var. This is achieved by finding the first instance of
|
|
# the kDracoVersion variable and then removing everything but the string literal
|
|
# assigned to the variable. Quotes and semicolon are stripped from the returned
|
|
# string.
|
|
function (extract_version_string version_file version_string_out_var)
|
|
file(STRINGS "${version_file}" draco_version REGEX "kDracoVersion")
|
|
list(GET draco_version 0 draco_version)
|
|
string(REPLACE "static const char kDracoVersion[] = " "" draco_version
|
|
"${draco_version}")
|
|
string(REPLACE ";" "" draco_version "${draco_version}")
|
|
string(REPLACE "\"" "" draco_version "${draco_version}")
|
|
set("${version_string_out_var}" "${draco_version}" PARENT_SCOPE)
|
|
endfunction ()
|
|
|
|
# Sets CMake compiler launcher to $launcher_name when $launcher_name is found in
|
|
# $PATH. Warns user about ignoring build flag $launcher_flag when $launcher_name
|
|
# is not found in $PATH.
|
|
function (set_compiler_launcher launcher_flag launcher_name)
|
|
find_program(launcher_path "${launcher_name}")
|
|
if (launcher_path)
|
|
set(CMAKE_C_COMPILER_LAUNCHER "${launcher_path}" PARENT_SCOPE)
|
|
set(CMAKE_CXX_COMPILER_LAUNCHER "${launcher_path}" PARENT_SCOPE)
|
|
message("--- Using ${launcher_name} as compiler launcher.")
|
|
else ()
|
|
message(WARNING
|
|
"--- Cannot find ${launcher_name}, ${launcher_flag} ignored.")
|
|
endif ()
|
|
endfunction ()
|
|
|
|
endif() # DRACO_CMAKE_UTIL_CMAKE_
|
|
|