Skip to content

Commit b8ab126

Browse files
committed
cmake : sync cmake scripts
1 parent edc5d92 commit b8ab126

File tree

4 files changed

+224
-1
lines changed

4 files changed

+224
-1
lines changed

ggml/cmake/BuildTypes.cmake

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Add new build types
2+
3+
# ReleaseGG - Release with enabled asserts
4+
5+
SET(CMAKE_CXX_FLAGS_RELEASEGG
6+
"-O3"
7+
CACHE STRING "Flags used by the c++ compiler during release builds with enabled asserts."
8+
FORCE )
9+
SET(CMAKE_C_FLAGS_RELEASEGG
10+
"-O3"
11+
CACHE STRING "Flags used by the compiler during release builds with enabled asserts."
12+
FORCE )
13+
SET(CMAKE_EXE_LINKER_FLAGS_RELEASEGG
14+
""
15+
CACHE STRING "Flags used for linking binaries during release builds with enabled asserts."
16+
FORCE )
17+
SET(CMAKE_SHARED_LINKER_FLAGS_RELEASEGG
18+
""
19+
CACHE STRING "Flags used by the shared libraries linker during release builds with enabled asserts."
20+
FORCE )
21+
MARK_AS_ADVANCED(
22+
CMAKE_CXX_FLAGS_RELEASEGG
23+
CMAKE_C_FLAGS_RELEASEGG
24+
CMAKE_EXE_LINKER_FLAGS_RELEASEGG
25+
CMAKE_SHARED_LINKER_FLAGS_RELEASEGG )
26+
27+
# RelWithDebInfoGG - RelWithDebInfo with enabled asserts
28+
29+
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFOGG
30+
"-O2 -g"
31+
CACHE STRING "Flags used by the c++ compiler during release builds with debug symbols and enabled asserts."
32+
FORCE )
33+
SET(CMAKE_C_FLAGS_RELWITHDEBINFOGG
34+
"-O2 -g"
35+
CACHE STRING "Flags used by the compiler during release builds with debug symbols and enabled asserts."
36+
FORCE )
37+
SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFOGG
38+
""
39+
CACHE STRING "Flags used for linking binaries during release builds with debug symbols and enabled asserts."
40+
FORCE )
41+
SET(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFOGG
42+
""
43+
CACHE STRING "Flags used by the shared libraries linker during release builds with debug symbols and enabled asserts."
44+
FORCE )
45+
MARK_AS_ADVANCED(
46+
CMAKE_CXX_FLAGS_RELWITHDEBINFOGG
47+
CMAKE_C_FLAGS_RELWITHDEBINFOGG
48+
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFOGG
49+
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFOGG )
50+
51+
if (NOT XCODE AND NOT MSVC AND NOT CMAKE_BUILD_TYPE)
52+
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
53+
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo" "ReleaseGG" "RelWithDebInfoGG")
54+
endif()

ggml/cmake/GitVars.cmake

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
find_package(Git)
2+
3+
# the commit's SHA1
4+
execute_process(COMMAND
5+
"${GIT_EXECUTABLE}" describe --match=NeVeRmAtCh --always --abbrev=8
6+
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
7+
OUTPUT_VARIABLE GIT_SHA1
8+
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
9+
10+
# the date of the commit
11+
execute_process(COMMAND
12+
"${GIT_EXECUTABLE}" log -1 --format=%ad --date=local
13+
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
14+
OUTPUT_VARIABLE GIT_DATE
15+
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
16+
17+
# the subject of the commit
18+
execute_process(COMMAND
19+
"${GIT_EXECUTABLE}" log -1 --format=%s
20+
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
21+
OUTPUT_VARIABLE GIT_COMMIT_SUBJECT
22+
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)

ggml/cmake/ggml-config.cmake.in

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
2+
@GGML_VARIABLES_EXPANDED@
3+
4+
@PACKAGE_INIT@
5+
6+
set_and_check(GGML_INCLUDE_DIR "@PACKAGE_GGML_INCLUDE_INSTALL_DIR@")
7+
set_and_check(GGML_LIB_DIR "@PACKAGE_GGML_LIB_INSTALL_DIR@")
8+
set_and_check(GGML_BIN_DIR "@PACKAGE_GGML_BIN_INSTALL_DIR@")
9+
10+
find_package(Threads REQUIRED)
11+
12+
find_library(GGML_LIBRARY ggml
13+
REQUIRED
14+
HINTS ${GGML_LIB_DIR}
15+
NO_CMAKE_FIND_ROOT_PATH)
16+
17+
add_library(ggml::ggml UNKNOWN IMPORTED)
18+
set_target_properties(ggml::ggml
19+
PROPERTIES
20+
IMPORTED_LOCATION "${GGML_LIBRARY}")
21+
22+
find_library(GGML_BASE_LIBRARY ggml-base
23+
REQUIRED
24+
HINTS ${GGML_LIB_DIR}
25+
NO_CMAKE_FIND_ROOT_PATH)
26+
27+
add_library(ggml::ggml-base UNKNOWN IMPORTED)
28+
set_target_properties(ggml::ggml-base
29+
PROPERTIES
30+
IMPORTED_LOCATION "${GGML_BASE_LIBRARY}")
31+
32+
if (NOT GGML_SHARED_LIB)
33+
if (APPLE AND GGML_ACCELERATE)
34+
find_library(ACCELERATE_FRAMEWORK Accelerate REQUIRED)
35+
list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES ${ACCELERATE_FRAMEWORK})
36+
endif()
37+
38+
if (GGML_OPENMP)
39+
find_package(OpenMP REQUIRED)
40+
list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES OpenMP::OpenMP_C OpenMP::OpenMP_CXX)
41+
endif()
42+
43+
if (GGML_CPU_HBM)
44+
find_library(memkind memkind REQUIRED)
45+
list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES memkind)
46+
endif()
47+
48+
if (GGML_BLAS)
49+
find_package(BLAS REQUIRED)
50+
list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES ${BLAS_LIBRARIES})
51+
list(APPEND GGML_CPU_INTERFACE_LINK_OPTIONS ${BLAS_LINKER_FLAGS})
52+
endif()
53+
54+
if (GGML_CUDA)
55+
find_package(CUDAToolkit REQUIRED)
56+
endif()
57+
58+
if (GGML_METAL)
59+
find_library(FOUNDATION_LIBRARY Foundation REQUIRED)
60+
find_library(METAL_FRAMEWORK Metal REQUIRED)
61+
find_library(METALKIT_FRAMEWORK MetalKit REQUIRED)
62+
63+
list(APPEND GGML_METAL_INTERFACE_LINK_LIBRARIES
64+
${FOUNDATION_LIBRARY} ${METAL_FRAMEWORK} ${METALKIT_FRAMEWORK})
65+
endif()
66+
67+
if (GGML_VULKAN)
68+
find_package(Vulkan REQUIRED)
69+
list(APPEND GGML_VULKAN_INTERFACE_LINK_LIBRARIES Vulkan::Vulkan)
70+
endif()
71+
72+
if (GGML_HIP)
73+
find_package(hip REQUIRED)
74+
find_package(hipblas REQUIRED)
75+
find_package(rocblas REQUIRED)
76+
list(APPEND GGML_HIP_INTERFACE_LINK_LIBRARIES hip::host roc::rocblas roc::hipblas)
77+
endif()
78+
79+
if (GGML_SYCL)
80+
find_package(DNNL)
81+
if (${DNNL_FOUND} AND GGML_SYCL_TARGET STREQUAL "INTEL")
82+
list(APPEND GGML_SYCL_INTERFACE_LINK_LIBRARIES DNNL::dnnl)
83+
endif()
84+
if (WIN32)
85+
find_package(IntelSYCL REQUIRED)
86+
find_package(MKL REQUIRED)
87+
list(APPEND GGML_SYCL_INTERFACE_LINK_LIBRARIES IntelSYCL::SYCL_CXX MKL::MKL MKL::MKL_SYCL)
88+
endif()
89+
endif()
90+
endif()
91+
92+
set(_ggml_all_targets "")
93+
foreach(_ggml_backend ${GGML_AVAILABLE_BACKENDS})
94+
string(REPLACE "-" "_" _ggml_backend_pfx "${_ggml_backend}")
95+
string(TOUPPER "${_ggml_backend_pfx}" _ggml_backend_pfx)
96+
97+
find_library(${_ggml_backend_pfx}_LIBRARY ${_ggml_backend}
98+
REQUIRED
99+
HINTS ${GGML_LIB_DIR}
100+
NO_CMAKE_FIND_ROOT_PATH)
101+
102+
message(STATUS "Found ${${_ggml_backend_pfx}_LIBRARY}")
103+
104+
add_library(ggml::${_ggml_backend} UNKNOWN IMPORTED)
105+
set_target_properties(ggml::${_ggml_backend}
106+
PROPERTIES
107+
INTERFACE_INCLUDE_DIRECTORIES "${GGML_INCLUDE_DIR}"
108+
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
109+
IMPORTED_LOCATION "${${_ggml_backend_pfx}_LIBRARY}"
110+
INTERFACE_COMPILE_FEATURES c_std_90
111+
POSITION_INDEPENDENT_CODE ON)
112+
113+
string(REGEX MATCH "^ggml-cpu" is_cpu_variant "${_ggml_backend}")
114+
if(is_cpu_variant)
115+
list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES "ggml::ggml" "ggml::ggml-base")
116+
set_target_properties(ggml::${_ggml_backend}
117+
PROPERTIES
118+
INTERFACE_LINK_LIBRARIES "${GGML_CPU_INTERFACE_LINK_LIBRARIES}")
119+
120+
if(GGML_CPU_INTERFACE_LINK_OPTIONS)
121+
set_target_properties(ggml::${_ggml_backend}
122+
PROPERTIES
123+
INTERFACE_LINK_OPTIONS "${GGML_CPU_INTERFACE_LINK_OPTIONS}")
124+
endif()
125+
126+
else()
127+
list(APPEND ${_ggml_backend_pfx}_INTERFACE_LINK_LIBRARIES "ggml::ggml" "ggml::ggml-base")
128+
set_target_properties(ggml::${_ggml_backend}
129+
PROPERTIES
130+
INTERFACE_LINK_LIBRARIES "${${_ggml_backend_pfx}_INTERFACE_LINK_LIBRARIES}")
131+
132+
if(${_ggml_backend_pfx}_INTERFACE_LINK_OPTIONS)
133+
set_target_properties(ggml::${_ggml_backend}
134+
PROPERTIES
135+
INTERFACE_LINK_OPTIONS "${${_ggml_backend_pfx}_INTERFACE_LINK_OPTIONS}")
136+
endif()
137+
endif()
138+
139+
list(APPEND _ggml_all_targets ggml::${_ggml_backend})
140+
endforeach()
141+
142+
add_library(ggml::all INTERFACE IMPORTED)
143+
set_target_properties(ggml::all
144+
PROPERTIES
145+
INTERFACE_LINK_LIBRARIES "${_ggml_all_targets}")
146+
147+
check_required_components(ggml)

scripts/sync-ggml.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
cp -rpv ../ggml/CMakeLists.txt ./ggml/CMakeLists.txt
44
cp -rpv ../ggml/src/CMakeLists.txt ./ggml/src/CMakeLists.txt
5-
cp -rpv ../ggml/cmake/FindSIMD.cmake ./ggml/cmake/FindSIMD.cmake
5+
cp -rpv ../ggml/cmake/* ./ggml/cmake/
66

77
cp -rpv ../ggml/src/ggml*.c ./ggml/src/
88
cp -rpv ../ggml/src/ggml*.cpp ./ggml/src/

0 commit comments

Comments
 (0)