Skip to content

Commit 9216a2b

Browse files
committed
clean up CMakeLists.txt
1 parent 8f33c11 commit 9216a2b

File tree

4 files changed

+48
-95
lines changed

4 files changed

+48
-95
lines changed

.idea/vcs.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

Lines changed: 18 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CMakeLists.txt

Lines changed: 26 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
66
if (NOT XCODE AND NOT MSVC AND NOT CMAKE_BUILD_TYPE)
77
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
88
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
9-
endif()
9+
endif ()
1010

1111
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
1212
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
@@ -21,92 +21,41 @@ find_package(Threads REQUIRED)
2121
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")
2222

2323
# Instruction set specific
24-
option(SD_AVX "sd: enable AVX" ON)
25-
option(SD_AVX2 "sd: enable AVX2" ON)
26-
option(SD_AVX512 "sd: enable AVX512" OFF)
27-
option(SD_FMA "sd: enable FMA" ON)
28-
29-
30-
31-
if (MSVC)
32-
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
33-
34-
if (BUILD_SHARED_LIBS)
35-
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
36-
endif ()
24+
option(SD_AVX "sd: enable AVX" ON)
25+
option(SD_AVX2 "sd: enable AVX2" ON)
26+
option(SD_AVX512 "sd: enable AVX512" OFF)
27+
option(SD_FMA "sd: enable FMA" ON)
28+
29+
30+
set(GGML_AVX512 OFF)
31+
set(GGML_AVX2 OFF)
32+
set(GGML_AVX OFF)
33+
34+
if (SD_AVX512)
35+
set(GGML_AVX512 ON)
36+
elseif (SD_AVX2)
37+
set(GGML_AVX2 ON)
38+
elseif (SD_AVX)
39+
set(GGML_AVX ON)
40+
endif ()
41+
if (SD_FMA)
42+
set(GGML_FMA ON)
3743
endif ()
38-
39-
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
40-
message(STATUS "ARM detected")
41-
if (MSVC)
42-
# TODO [llama.cpp]: arm msvc?
43-
else()
44-
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
45-
add_compile_options(-mcpu=native)
46-
endif()
47-
# TODO [llama.cpp]: armv6,7,8 version specific flags
48-
endif()
49-
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86_64|i686|AMD64)$")
50-
message(STATUS "x86 detected")
51-
if (MSVC)
52-
if (SD_AVX512)
53-
add_compile_options($<$<COMPILE_LANGUAGE:C>:/arch:AVX512>)
54-
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:/arch:AVX512>)
55-
# MSVC has no compile-time flags enabling specific
56-
# AVX512 extensions, neither it defines the
57-
# macros corresponding to the extensions.
58-
# Do it manually.
59-
elseif (SD_AVX2)
60-
add_compile_options($<$<COMPILE_LANGUAGE:C>:/arch:AVX2>)
61-
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:/arch:AVX2>)
62-
elseif (SD_AVX)
63-
add_compile_options($<$<COMPILE_LANGUAGE:C>:/arch:AVX>)
64-
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:/arch:AVX>)
65-
endif()
66-
else()
67-
add_compile_options(-mf16c)
68-
if (SD_FMA)
69-
add_compile_options(-mfma)
70-
endif()
71-
if (SD_AVX)
72-
add_compile_options(-mavx)
73-
endif()
74-
if (SD_AVX2)
75-
add_compile_options(-mavx2)
76-
endif()
77-
if (SD_AVX512)
78-
add_compile_options(-mavx512f)
79-
add_compile_options(-mavx512bw)
80-
endif()
81-
endif()
82-
else()
83-
# TODO [llama.cpp]: support PowerPC
84-
message(STATUS "Unknown architecture")
85-
endif()
86-
# deps
8744

8845
include(sd)
8946
include_directories(${sd_SOURCE_DIR})
9047

91-
if (APPLE AND NOT GGML_NO_ACCELERATE)
92-
find_library(ACCELERATE_FRAMEWORK Accelerate)
93-
if (ACCELERATE_FRAMEWORK)
94-
message(STATUS "Accelerate framework found")
95-
96-
set(SD_EXTRA_LIBS ${SD_EXTRA_LIBS} ${ACCELERATE_FRAMEWORK})
97-
set(SD_EXTRA_LIBS ${SD_EXTRA_LIBS} -DGGML_USE_ACCELERATE)
98-
else()
99-
message(WARNING "Accelerate framework not found")
100-
endif()
101-
endif()
102-
10348
set(SD_ABI sd-abi)
49+
10450
add_library(${SD_ABI} SHARED
10551
stable-diffusion-abi.cpp
10652
stable-diffusion-abi.h
10753
base64.hpp)
54+
55+
target_include_directories(${SD_ABI} PUBLIC .)
56+
10857
set_target_properties(${SD_ABI} PROPERTIES POSITION_INDEPENDENT_CODE ON)
10958
target_compile_definitions(${SD_ABI} PRIVATE STABLE_DIFFUSION_SHARED STABLE_DIFFUSION_BUILD)
110-
target_link_libraries(${SD_ABI} PUBLIC $<TARGET_OBJECTS:ggml> $<TARGET_OBJECTS:stable-diffusion> ${SD_EXTRA_LIBS} ${CMAKE_THREAD_LIBS_INIT})
111-
target_include_directories(${SD_ABI} PUBLIC .)
59+
target_link_libraries(${SD_ABI} PRIVATE ggml stable-diffusion ${CMAKE_THREAD_LIBS_INIT})
60+
11261

cmake/sd.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ endif()
66

77
set(SD_GIT_TAG 1ac4ad2ba21c7f1c96c061f452bde129522a85c1)
88
set(SD_GIT_URL https://github.com/Cyberhan123/stable-diffusion.cpp)
9+
set(BUILD_SHARED_LIBS OFF)
910

1011
FetchContent_Declare(
1112
sd
1213
GIT_REPOSITORY ${SD_GIT_URL}
1314
GIT_TAG ${SD_GIT_TAG}
1415
)
15-
16-
FetchContent_MakeAvailable(sd)
16+
FetchContent_MakeAvailable(sd)

0 commit comments

Comments
 (0)