feat: cmake improvements and simple ci (#9)

* move main and stb-libs to subfolder

* cmake : general additions

* ci : add simple building

---------

Co-authored-by: leejet <31925346+leejet@users.noreply.github.com>
This commit is contained in:
Erik Scholzandleejet authored and GitHub committed 2023-08-17 21:09:57 +08:00
1 parent 8f34dd7cc7
commit 844351c417
7 files changed
+143 -8

No files matched your search

+36 -8
View File
@@ -1,16 +1,44 @@
cmake_minimum_required(VERSION 3.12)
project(stable-diffusion)
project("stable-diffusion")
set(SD_LIB stable-diffusion)
set(SD_TARGET sd)
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(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)
add_executable(${SD_TARGET} main.cpp stb_image.h stb_image_write.h)
target_link_libraries(${SD_LIB} PUBLIC ggml)
target_link_libraries(${SD_TARGET} ${SD_LIB})
target_include_directories(${SD_LIB} PUBLIC .)
target_compile_features(${SD_LIB} PUBLIC cxx_std_11)
target_compile_features(${SD_TARGET} PUBLIC cxx_std_11)
if (SD_BUILD_EXAMPLES)
add_subdirectory(examples)
endif()