MetaCore/cmake/MetaCoreFilament.cmake

52 lines
1.9 KiB
CMake

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