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