11include (CheckCXXCompilerFlag)
22
3- unset (GGML_CDEF_PUBLIC)
4-
53add_compile_definitions (GGML_SCHED_MAX_COPIES=${GGML_SCHED_MAX_COPIES} )
64
75# enable libstdc++ assertions for debug builds
@@ -26,9 +24,6 @@ if (NOT MSVC)
2624 endif ()
2725endif ()
2826
29- unset (GGML_EXTRA_LIBS_PRIVATE)
30- unset (GGML_EXTRA_LIBS_PUBLIC)
31-
3227function (get_flags CCID CCVER)
3328 set (C_FLAGS "" )
3429 set (CXX_FLAGS "" )
@@ -232,6 +227,9 @@ function(ggml_add_backend backend)
232227 if (${backend_id} )
233228 string (TOLOWER "ggml-${backend} " backend_target)
234229 add_subdirectory (${backend_target} )
230+ # check again in case the backend disabled itself
231+ # note that this should NOT be the normal behavior, in case of errors the backend should fail the build
232+ # however, currently it is necessary for AMX, since it is enabled by default on llama.cpp
235233 if (${backend_id} )
236234 message (STATUS "Including ${backend} backend" )
237235 if (${BUILD_SHARED_LIBS} )
@@ -257,40 +255,28 @@ ggml_add_backend(RPC)
257255ggml_add_backend(SYCL)
258256ggml_add_backend(Vulkan)
259257
260- target_compile_definitions (ggml-base PUBLIC ${GGML_CDEF_PUBLIC} )
261- target_include_directories (ggml-base PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /../include > $<INSTALL_INTERFACE:include >)
262- target_compile_features (ggml-base PRIVATE c_std_11) # don't bump
263-
264- target_compile_definitions (ggml PUBLIC ${GGML_CDEF_PUBLIC} )
265- target_include_directories (ggml PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /../include > $<INSTALL_INTERFACE:include >)
266- target_compile_features (ggml PRIVATE c_std_11) # don't bump
258+ foreach (target ggml-base ggml)
259+ target_include_directories (${target} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /../include > $<INSTALL_INTERFACE:include >)
260+ target_compile_features (${target} PRIVATE c_std_11) # don't bump
261+ endforeach ()
267262
268- # this probably should be removed
269- target_include_directories (ggml-base PRIVATE . ${GGML_EXTRA_INCLUDES} )
270- target_link_directories (ggml-base PRIVATE ${GGML_EXTRA_LIBDIRS} )
271-
272- list (APPEND GGML_EXTRA_LIBS_PRIVATE Threads::Threads)
263+ target_link_libraries (ggml-base PRIVATE Threads::Threads)
273264
274265find_library (MATH_LIBRARY m)
275266if (MATH_LIBRARY)
276267 if (NOT WIN32 OR NOT DEFINED ENV{ONEAPI_ROOT})
277- list ( APPEND GGML_EXTRA_LIBS_PRIVATE m)
268+ target_link_libraries (ggml-base PRIVATE m)
278269 endif ()
279270endif ()
280271
281272if (CMAKE_SYSTEM_NAME MATCHES "Android" )
282- list ( APPEND GGML_EXTRA_LIBS_PRIVATE dl) # Must be linked explicitly
273+ target_link_libraries (ggml-base PRIVATE dl)
283274endif ()
284275
285- list (REMOVE_DUPLICATES GGML_EXTRA_LIBS_PRIVATE)
286- list (REMOVE_DUPLICATES GGML_EXTRA_LIBS_PUBLIC)
287- target_link_libraries (ggml PRIVATE ${GGML_EXTRA_LIBS_PRIVATE} PUBLIC ${GGML_EXTRA_LIBS_PUBLIC} )
288-
289276if (BUILD_SHARED_LIBS )
290- set_target_properties (ggml-base PROPERTIES POSITION_INDEPENDENT_CODE ON )
291- set_target_properties (ggml PROPERTIES POSITION_INDEPENDENT_CODE ON )
292- target_compile_definitions (ggml-base PRIVATE GGML_BUILD)
293- target_compile_definitions (ggml PRIVATE GGML_BUILD)
294- target_compile_definitions (ggml-base PUBLIC GGML_SHARED)
295- target_compile_definitions (ggml PUBLIC GGML_SHARED)
277+ foreach (target ggml-base ggml)
278+ set_target_properties (${target} PROPERTIES POSITION_INDEPENDENT_CODE ON )
279+ target_compile_definitions (${target} PRIVATE GGML_BUILD)
280+ target_compile_definitions (${target} PUBLIC GGML_SHARED)
281+ endforeach ()
296282endif ()
0 commit comments