2020-02-24 21:38:16 +00:00
|
|
|
#
|
|
|
|
# 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)
|
2020-02-25 18:42:31 +00:00
|
|
|
# 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.
|
2020-02-24 21:38:16 +00:00
|
|
|
if(TARGET_OR_ALL STREQUAL "ALL")
|
|
|
|
add_compile_definitions(${DEFINITIONS})
|
|
|
|
else()
|
2020-02-25 18:42:31 +00:00
|
|
|
target_compile_definitions("${TARGET_OR_ALL}" PRIVATE ${DEFINITIONS})
|
2020-02-24 21:38:16 +00:00
|
|
|
endif()
|
|
|
|
endfunction()
|
|
|
|
|
|
|
|
function(tuklib_add_definition_if TARGET_OR_ALL VAR)
|
|
|
|
if(${VAR})
|
2020-02-25 18:42:31 +00:00
|
|
|
tuklib_add_definitions("${TARGET_OR_ALL}" "${VAR}")
|
2020-02-24 21:38:16 +00:00
|
|
|
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.
|
2020-02-25 18:42:31 +00:00
|
|
|
tuklib_add_definitions("${TARGET_OR_ALL}"
|
2020-02-24 21:38:16 +00:00
|
|
|
_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()
|