changeset 317:764f65dfa46d

misc: various fixes for glibc
author David Demelier <markand@malikania.fr>
date Wed, 22 Sep 2021 16:00:46 +0200
parents 1a6125ffebff
children d3505c23a409
files CMakeLists.txt cmake/FindZSTD.cmake extern/libsqlite/CMakeLists.txt libmlk-port/CMakeLists.txt
diffstat 4 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Wed Sep 22 12:57:55 2021 +0200
+++ b/CMakeLists.txt	Wed Sep 22 16:00:46 2021 +0200
@@ -27,7 +27,7 @@
 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
 
 if (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
-	set(CMAKE_C_FLAGS "-Wall -Wextra -pedantic ${CMAKE_C_FLAGS}")
+	set(CMAKE_C_FLAGS "-Wall -Wextra -pedantic -D_POSIX_C_SOURCE=200809L ${CMAKE_C_FLAGS}")
 elseif (CMAKE_C_COMPILER_ID MATCHES "MSVC")
 	set(CMAKE_C_FLAGS "/wd4090 /wd5105 /wd6031 /wd6001 /wd26451 ${CMAKE_C_FLAGS}")
 endif ()
@@ -55,6 +55,11 @@
 
 if (MLK_WITH_ZSTD)
 	find_package(ZSTD REQUIRED)
+
+	# Compressor is required as well.
+	if (NOT TARGET ZSTD::exe)
+		message(FATAL_ERROR "Missing zstd command line utility")
+	endif ()
 endif ()
 
 add_subdirectory(extern/libsqlite)
--- a/cmake/FindZSTD.cmake	Wed Sep 22 12:57:55 2021 +0200
+++ b/cmake/FindZSTD.cmake	Wed Sep 22 16:00:46 2021 +0200
@@ -41,7 +41,7 @@
 		)
 	endif ()
 
-	if (NOT TARGET ZSTD::exe)
+	if (ZSTD_EXE AND NOT TARGET ZSTD::exe)
 		add_executable(ZSTD::exe IMPORTED GLOBAL)
 		set_target_properties(ZSTD::exe PROPERTIES IMPORTED_LOCATION "${ZSTD_EXE}")
 	endif ()
--- a/extern/libsqlite/CMakeLists.txt	Wed Sep 22 12:57:55 2021 +0200
+++ b/extern/libsqlite/CMakeLists.txt	Wed Sep 22 16:00:46 2021 +0200
@@ -34,6 +34,7 @@
 			SQLITE_DEFAULT_MEMSTATUS=0
 			SQLITE_OMIT_DECLTYPE
 			SQLITE_OMIT_DEPRECATED
+			SQLITE_OMIT_LOAD_EXTENSION
 			SQLITE_DEFAULT_FOREIGN_KEYS=1
 	INCLUDES
 		PUBLIC $<BUILD_INTERFACE:${libmlk-sqlite_SOURCE_DIR}>
--- a/libmlk-port/CMakeLists.txt	Wed Sep 22 12:57:55 2021 +0200
+++ b/libmlk-port/CMakeLists.txt	Wed Sep 22 16:00:46 2021 +0200
@@ -22,6 +22,7 @@
 include(CheckIncludeFile)
 include(CheckSymbolExists)
 include(CheckTypeSize)
+include(CheckLibraryExists)
 
 check_function_exists(strlcpy MLK_HAS_STRLCPY)
 check_function_exists(fmemopen MLK_HAS_FMEMOPEN)
@@ -33,6 +34,7 @@
 check_include_file(unistd.h MLK_HAS_UNISTD_H)
 check_symbol_exists(PATH_MAX limits.h MLK_HAS_PATH_MAX)
 check_type_size(ssize_t MLK_HAS_SSIZE_T)
+check_library_exists(m fmin "" MLK_HAS_LIBM)
 
 if (NOT MLK_HAS_STDNORETURN_H)
 	file(WRITE ${CMAKE_BINARY_DIR}/stdnoreturn.h "#define noreturn\n")
@@ -55,10 +57,15 @@
 	${libmlk-port_SOURCE_DIR}/port/port.h
 )
 
+if (MLK_HAS_LIBM)
+	list(APPEND LIBRARIES m)
+endif ()
+
 mlk_library(
 	NAME libmlk-port
 	SOURCES ${SOURCES}
 	TYPE STATIC
+	LIBRARIES ${LIBRARIES}
 	INCLUDES
 		PUBLIC
 			$<BUILD_INTERFACE:${libmlk-port_SOURCE_DIR}>