| cmake_minimum_required(VERSION 3.12) | |
| project("stable-diffusion") | |
| set(CMAKE_EXPORT_COMPILE_COMMANDS ON) | |
| if (NOT XCODE AND NOT MSVC AND NOT CMAKE_BUILD_TYPE) | |
| set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE) | |
| set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") | |
| endif() | |
| set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) | |
| set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) | |
| if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) | |
| set(SD_STANDALONE ON) | |
| else() | |
| set(SD_STANDALONE OFF) | |
| endif() | |
| # | |
| # Option list | |
| # | |
| # general | |
| #option(SD_BUILD_TESTS "sd: build tests" ${SD_STANDALONE}) | |
| option(SD_BUILD_EXAMPLES "sd: build examples" ${SD_STANDALONE}) | |
| option(BUILD_SHARED_LIBS "sd: build shared libs" OFF) | |
| #option(SD_BUILD_SERVER "sd: build server example" ON) | |
| # deps | |
| add_subdirectory(ggml) | |
| set(SD_LIB stable-diffusion) | |
| add_library(${SD_LIB} stable-diffusion.h stable-diffusion.cpp) | |
| target_link_libraries(${SD_LIB} PUBLIC ggml) | |
| target_include_directories(${SD_LIB} PUBLIC .) | |
| target_compile_features(${SD_LIB} PUBLIC cxx_std_11) | |
| if (SD_BUILD_EXAMPLES) | |
| add_subdirectory(examples) | |
| endif() | |