cmake_minimum_required(VERSION 3.10) # source files FILE(GLOB SRCS ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp) include_directories(${CMAKE_SOURCE_DIR}/tools/cv/include/) include_directories(${CMAKE_CURRENT_LIST_DIR}/include/) if (MNN_BUILD_LLM) include_directories(${CMAKE_CURRENT_LIST_DIR}/../../llm/engine/src/) endif() if (MNN_SEP_BUILD) if (MNN_BUILD_SHARED_LIBS) # compile dynamic so, support Linux/Mac add_library(diffusion SHARED ${SRCS}) set_target_properties(diffusion PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) target_link_libraries(diffusion ${MNN_DEPS}) if (MNN_BUILD_LLM AND TARGET llm) target_link_libraries(diffusion llm) endif() else() add_library(diffusion STATIC ${SRCS}) endif() list(APPEND MNN_DEPS diffusion) else() add_library(diffusion OBJECT ${SRCS}) endif() if (MNN_BUILD_LLM) target_compile_definitions(diffusion PRIVATE MNN_DIFFUSION_WITH_LLM_TOKENIZER) endif() add_executable(diffusion_demo ${CMAKE_CURRENT_LIST_DIR}/diffusion_demo.cpp ) target_link_libraries(diffusion_demo ${MNN_DEPS}) if (MNN_BUILD_LLM) # sana_diffusion_demo depends on SanaLlm, which includes llm/llm.hpp and links against the llm engine. add_executable(sana_diffusion_demo ${CMAKE_CURRENT_LIST_DIR}/sana_diffusion_demo.cpp) target_link_libraries(sana_diffusion_demo ${MNN_DEPS}) add_executable(wan_diffusion_demo ${CMAKE_CURRENT_LIST_DIR}/wan_diffusion_demo.cpp) target_link_libraries(wan_diffusion_demo ${MNN_DEPS}) endif() add_executable(diffusion_sd35_demo ${CMAKE_CURRENT_LIST_DIR}/diffusion_sd35_demo.cpp) target_link_libraries(diffusion_sd35_demo ${MNN_DEPS})