ggerganov commited on
Commit
3b88d3c
·
1 Parent(s): e4e0be6

cmake : sync cmake scripts

Browse files
ggml/cmake/BuildTypes.cmake ADDED
@@ -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 ADDED
@@ -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 ADDED
@@ -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 CHANGED
@@ -2,7 +2,7 @@
2
 
3
  cp -rpv ../ggml/CMakeLists.txt ./ggml/CMakeLists.txt
4
  cp -rpv ../ggml/src/CMakeLists.txt ./ggml/src/CMakeLists.txt
5
- cp -rpv ../ggml/cmake/FindSIMD.cmake ./ggml/cmake/FindSIMD.cmake
6
 
7
  cp -rpv ../ggml/src/ggml*.c ./ggml/src/
8
  cp -rpv ../ggml/src/ggml*.cpp ./ggml/src/
 
2
 
3
  cp -rpv ../ggml/CMakeLists.txt ./ggml/CMakeLists.txt
4
  cp -rpv ../ggml/src/CMakeLists.txt ./ggml/src/CMakeLists.txt
5
+ cp -rpv ../ggml/cmake/* ./ggml/cmake/
6
 
7
  cp -rpv ../ggml/src/ggml*.c ./ggml/src/
8
  cp -rpv ../ggml/src/ggml*.cpp ./ggml/src/