CMake: detect uclibc and musl version

This commit is contained in:
李通洲
2023-10-08 21:03:10 +08:00
parent 2e60f34cd8
commit fa46dce0e1
2 changed files with 18 additions and 2 deletions
+9
View File
@@ -663,6 +663,15 @@ if(yyjson_FOUND)
target_link_libraries(libfastfetch PRIVATE yyjson)
endif()
if(LINUX AND EXISTS "/lib/ld-musl-x86_64.so.1")
execute_process(COMMAND "/lib/ld-musl-x86_64.so.1"
ERROR_VARIABLE LD_MUSL_VERSION)
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" LD_MUSL_VERSION "${LD_MUSL_VERSION}")
if(NOT LD_MUSL_VERSION STREQUAL "")
target_compile_definitions(libfastfetch PUBLIC FF_MUSL_VERSION="${LD_MUSL_VERSION}")
endif()
endif()
target_compile_definitions(libfastfetch PUBLIC _GNU_SOURCE _XOPEN_SOURCE __STDC_WANT_LIB_EXT1__=1)
if(WIN32)
target_compile_definitions(libfastfetch PUBLIC WIN32_LEAN_AND_MEAN=1)
+9 -2
View File
@@ -7,12 +7,19 @@
const char* ffDetectLibc(FFLibcResult* result)
{
#ifdef __GNU_LIBRARY__
#ifdef __UCLIBC__
result->name = "uClibc";
result->version = FF_STR(__UCLIBC_MAJOR__) "." FF_STR(__UCLIBC_MINOR__) "." FF_STR(__UCLIBC_SUBLEVEL__);
#elif defined(__GNU_LIBRARY__)
result->name = "glibc";
result->version = FF_STR(__GLIBC__) "." FF_STR(__GLIBC_MINOR__);
#else
result->name = "musl";
result->version = NULL;
#ifdef FF_MUSL_VERSION
result->version = FF_MUSL_VERSION;
#else
result->version = NULL;
#endif
#endif
return NULL;