summaryrefslogtreecommitdiffstats
path: root/cmake/tuklib_common.cmake
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 21:12:04 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 21:12:04 +0000
commiteac54b7c4aec25060d7bd856f7cdc290943d6aae (patch)
tree9a6d81c9f88df4698e746d63d14ddafeddd918b8 /cmake/tuklib_common.cmake
parentInitial commit. (diff)
downloadxz-utils-eac54b7c4aec25060d7bd856f7cdc290943d6aae.tar.xz
xz-utils-eac54b7c4aec25060d7bd856f7cdc290943d6aae.zip
Adding upstream version 5.4.1.upstream/5.4.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'cmake/tuklib_common.cmake')
-rw-r--r--cmake/tuklib_common.cmake49
1 files changed, 49 insertions, 0 deletions
diff --git a/cmake/tuklib_common.cmake b/cmake/tuklib_common.cmake
new file mode 100644
index 0000000..088a3cb
--- /dev/null
+++ b/cmake/tuklib_common.cmake
@@ -0,0 +1,49 @@
+#
+# tuklib_common.cmake - common functions and macros for tuklib_*.cmake files
+#
+# Author: Lasse Collin
+#
+# This file has been put into the public domain.
+# You can do whatever you want with this file.
+#
+
+function(tuklib_add_definitions TARGET_OR_ALL DEFINITIONS)
+ # DEFINITIONS may be an empty string/list but it's fine here. There is
+ # no need to quote ${DEFINITIONS} as empty arguments are fine here.
+ if(TARGET_OR_ALL STREQUAL "ALL")
+ add_compile_definitions(${DEFINITIONS})
+ else()
+ target_compile_definitions("${TARGET_OR_ALL}" PRIVATE ${DEFINITIONS})
+ endif()
+endfunction()
+
+function(tuklib_add_definition_if TARGET_OR_ALL VAR)
+ if(${VAR})
+ tuklib_add_definitions("${TARGET_OR_ALL}" "${VAR}")
+ endif()
+endfunction()
+
+# This is an over-simplified version of AC_USE_SYSTEM_EXTENSIONS in Autoconf
+# or gl_USE_SYSTEM_EXTENSIONS in gnulib.
+macro(tuklib_use_system_extensions TARGET_OR_ALL)
+ if(NOT WIN32)
+ # FIXME? The Solaris-specific __EXTENSIONS__ should be conditional
+ # even on Solaris. See gnulib: git log m4/extensions.m4.
+ # FIXME? gnulib and autoconf.git has lots of new stuff.
+ tuklib_add_definitions("${TARGET_OR_ALL}"
+ _GNU_SOURCE
+ __EXTENSIONS__
+ _POSIX_PTHREAD_SEMANTICS
+ _TANDEM_SOURCE
+ _ALL_SOURCE
+ )
+
+ list(APPEND CMAKE_REQUIRED_DEFINITIONS
+ -D_GNU_SOURCE
+ -D__EXTENSIONS__
+ -D_POSIX_PTHREAD_SEMANTICS
+ -D_TANDEM_SOURCE
+ -D_ALL_SOURCE
+ )
+ endif()
+endmacro()