52 lines
1.9 KiB
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()
|