# Filament SDK configuration for MetaCore set(METACORE_FILAMENT_ROOT "${CMAKE_SOURCE_DIR}/third_party/filament_installed" CACHE PATH "Path to installed Filament SDK") set(METACORE_FILAMENT_INCLUDE_DIR "${METACORE_FILAMENT_ROOT}/include") set(METACORE_FILAMENT_LIB_DIR "${METACORE_FILAMENT_ROOT}/lib/x86_64") function(metacore_use_filament target_name) if(NOT TARGET ${target_name}) message(FATAL_ERROR "Target ${target_name} does not exist.") endif() message(STATUS "Linking Filament to ${target_name}") # 定义核心库 set(_filament_libs "${METACORE_FILAMENT_LIB_DIR}/filament.lib" "${METACORE_FILAMENT_LIB_DIR}/backend.lib" "${METACORE_FILAMENT_LIB_DIR}/utils.lib" "${METACORE_FILAMENT_LIB_DIR}/filabridge.lib" "${METACORE_FILAMENT_LIB_DIR}/filaflat.lib" "${METACORE_FILAMENT_LIB_DIR}/filamat.lib" "${METACORE_FILAMENT_LIB_DIR}/shaders.lib" "${METACORE_FILAMENT_LIB_DIR}/bluegl.lib" "${METACORE_FILAMENT_LIB_DIR}/gltfio.lib" "${METACORE_FILAMENT_LIB_DIR}/gltfio_core.lib" "${METACORE_FILAMENT_LIB_DIR}/abseil.lib" "${METACORE_FILAMENT_LIB_DIR}/perfetto.lib" "${METACORE_FILAMENT_LIB_DIR}/dracodec.lib" "${METACORE_FILAMENT_LIB_DIR}/geometry.lib" "${METACORE_FILAMENT_LIB_DIR}/smol-v.lib" "${METACORE_FILAMENT_LIB_DIR}/zstd.lib" opengl32.lib gdi32.lib user32.lib shlwapi.lib ) target_include_directories(${target_name} PRIVATE "${METACORE_FILAMENT_INCLUDE_DIR}") target_link_libraries(${target_name} PRIVATE ${_filament_libs}) # Filament 需要 C++17 或更高版本 target_compile_features(${target_name} PRIVATE cxx_std_17) # 针对 MSVC 的一些必要宏定义 if(MSVC) target_compile_definitions(${target_name} PRIVATE WIN32_LEAN_AND_MEAN _CRT_SECURE_NO_WARNINGS ) endif() endfunction()