aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt52
-rw-r--r--cmake/tuklib_common.cmake8
-rw-r--r--cmake/tuklib_cpucores.cmake30
-rw-r--r--cmake/tuklib_integer.cmake34
-rw-r--r--cmake/tuklib_mbstr.cmake6
-rw-r--r--cmake/tuklib_physmem.cmake29
-rw-r--r--cmake/tuklib_progname.cmake4
7 files changed, 85 insertions, 78 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5b840b46..7767896e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -65,10 +65,10 @@ string(REGEX REPLACE
#define LZMA_VERSION_MINOR ([0-9]+)\n\
#define LZMA_VERSION_PATCH ([0-9]+)\n\
.*$"
- "\\1.\\2.\\3" XZ_VERSION ${XZ_VERSION})
+ "\\1.\\2.\\3" XZ_VERSION "${XZ_VERSION}")
# Among other things, this gives us variables xz_VERSION and xz_VERSION_MAJOR.
-project(xz VERSION ${XZ_VERSION} LANGUAGES C)
+project(xz VERSION "${XZ_VERSION}" LANGUAGES C)
# Definitions common to all targets:
add_compile_definitions(
@@ -152,7 +152,7 @@ if(NOT WIN32 AND NOT DEFINED CACHE{HAVE_CLOCK_GETTIME})
# when clock_gettime is available.
add_compile_definitions(
HAVE_CLOCK_GETTIME
- HAVE_DECL_CLOCK_MONOTONIC=$<BOOL:${HAVE_DECL_CLOCK_MONOTONIC}>
+ HAVE_DECL_CLOCK_MONOTONIC=$<BOOL:"${HAVE_DECL_CLOCK_MONOTONIC}">
)
endif()
endif()
@@ -167,7 +167,7 @@ else()
# Check if pthread_condattr_setclock() exists to use CLOCK_MONOTONIC.
if(HAVE_DECL_CLOCK_MONOTONIC)
- list(INSERT CMAKE_REQUIRED_LIBRARIES 0 ${CMAKE_THREAD_LIBS_INIT})
+ list(INSERT CMAKE_REQUIRED_LIBRARIES 0 "${CMAKE_THREAD_LIBS_INIT}")
check_symbol_exists(pthread_condattr_setclock pthread.h
HAVE_PTHREAD_CONDATTR_SETCLOCK)
tuklib_add_definition_if(ALL HAVE_PTHREAD_CONDATTR_SETCLOCK)
@@ -395,11 +395,11 @@ if(WIN32)
elseif(CMAKE_SYSTEM_NAME MATCHES "^Linux$|^FreeBSD$")
# Symbol versioning for shared liblzma. This doesn't affect static builds.
target_link_options(liblzma PRIVATE
- -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma.map
+ "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma.map"
)
set_target_properties(liblzma PROPERTIES
- LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma.map
- LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc
+ LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma.map"
+ LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc"
)
endif()
@@ -407,8 +407,8 @@ set_target_properties(liblzma PROPERTIES
# At least for now the package versioning matches the rules used for
# shared library versioning (excluding development releases) so it is
# fine to use the package version here.
- SOVERSION ${xz_VERSION_MAJOR}
- VERSION ${xz_VERSION}
+ SOVERSION "${xz_VERSION_MAJOR}"
+ VERSION "${xz_VERSION}"
# It's liblzma.so or liblzma.dll, not libliblzma.so or lzma.dll.
# Avoid the name lzma.dll because it would conflict with LZMA SDK.
@@ -421,12 +421,12 @@ set_target_properties(liblzma PROPERTIES
# for development releases where each release may have incompatible changes.
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
- ${CMAKE_CURRENT_BINARY_DIR}/liblzmaConfigVersion.cmake
- VERSION ${liblzma_VERSION}
+ "${CMAKE_CURRENT_BINARY_DIR}/liblzmaConfigVersion.cmake"
+ VERSION "${liblzma_VERSION}"
COMPATIBILITY SameMajorVersion)
# Create liblzmaConfig.cmake.
-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/liblzmaConfig.cmake
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/liblzmaConfig.cmake"
"include(CMakeFindDependencyMacro)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_dependency(Threads)
@@ -439,36 +439,36 @@ include(GNUInstallDirs)
# Install the library binary. The INCLUDES specifies the include path that
# is exported for other projects to use but it doesn't install any files.
install(TARGETS liblzma EXPORT liblzmaTargets
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
COMPONENT liblzma_Runtime
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
COMPONENT liblzma_Runtime
NAMELINK_COMPONENT liblzma_Development
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
COMPONENT liblzma_Development
- INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
# Install the liblzma API headers. These use a subdirectory so
# this has to be done as a separate step.
install(DIRECTORY src/liblzma/api/
COMPONENT liblzma_Development
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
FILES_MATCHING PATTERN "*.h")
# Install the CMake files that other packages can use to find liblzma.
set(liblzma_INSTALL_CMAKEDIR
- ${CMAKE_INSTALL_LIBDIR}/cmake/liblzma
+ "${CMAKE_INSTALL_LIBDIR}/cmake/liblzma"
CACHE STRING "Path to liblzma's .cmake files")
install(EXPORT liblzmaTargets
NAMESPACE liblzma::
FILE liblzmaTargets.cmake
- DESTINATION ${liblzma_INSTALL_CMAKEDIR}
+ DESTINATION "${liblzma_INSTALL_CMAKEDIR}"
COMPONENT liblzma_Development)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblzmaConfig.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/liblzmaConfigVersion.cmake
- DESTINATION ${liblzma_INSTALL_CMAKEDIR}
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/liblzmaConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/liblzmaConfigVersion.cmake"
+ DESTINATION "${liblzma_INSTALL_CMAKEDIR}"
COMPONENT liblzma_Development)
@@ -507,12 +507,12 @@ if(HAVE_GETOPT_LONG)
tuklib_progname(xzdec)
install(TARGETS xzdec
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
COMPONENT xzdec)
if(UNIX)
install(FILES src/xzdec/xzdec.1
- DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
COMPONENT xzdec)
endif()
endif()
@@ -634,10 +634,10 @@ if(NOT MSVC AND HAVE_GETOPT_LONG)
endif()
install(TARGETS xz
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
COMPONENT xz)
install(FILES src/xz/xz.1
- DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
COMPONENT xz)
endif()
diff --git a/cmake/tuklib_common.cmake b/cmake/tuklib_common.cmake
index c3d2c536..088a3cb1 100644
--- a/cmake/tuklib_common.cmake
+++ b/cmake/tuklib_common.cmake
@@ -8,16 +8,18 @@
#
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})
+ 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})
+ tuklib_add_definitions("${TARGET_OR_ALL}" "${VAR}")
endif()
endfunction()
@@ -28,7 +30,7 @@ macro(tuklib_use_system_extensions TARGET_OR_ALL)
# 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}
+ tuklib_add_definitions("${TARGET_OR_ALL}"
_GNU_SOURCE
__EXTENSIONS__
_POSIX_PTHREAD_SEMANTICS
diff --git a/cmake/tuklib_cpucores.cmake b/cmake/tuklib_cpucores.cmake
index 34546b0d..5844e4b2 100644
--- a/cmake/tuklib_cpucores.cmake
+++ b/cmake/tuklib_cpucores.cmake
@@ -7,15 +7,11 @@
# You can do whatever you want with this file.
#
-include(${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake)
+include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
include(CheckCSourceCompiles)
include(CheckIncludeFile)
function(tuklib_cpucores_internal_check)
- if(CACHE{TUKLIB_CPUCORES_DEFINITIONS})
- return()
- endif()
-
if(WIN32 OR CYGWIN)
# Nothing to do, the tuklib_cpucores.c handles it.
set(TUKLIB_CPUCORES_DEFINITIONS "" CACHE INTERNAL "")
@@ -158,16 +154,22 @@ function(tuklib_cpucores_internal_check)
endfunction()
function(tuklib_cpucores TARGET_OR_ALL)
- message(STATUS "Checking how to detect the number of available CPU cores")
+ if(NOT DEFINED CACHE{TUKLIB_CPUCORES_FOUND})
+ message(STATUS
+ "Checking how to detect the number of available CPU cores")
+ tuklib_cpucores_internal_check()
- tuklib_cpucores_internal_check()
+ if(DEFINED CACHE{TUKLIB_CPUCORES_DEFINITIONS})
+ set(TUKLIB_CPUCORES_FOUND 1 CACHE INTERNAL "")
+ else()
+ set(TUKLIB_CPUCORES_FOUND 0 CACHE INTERNAL "")
+ message(WARNING
+ "No method to detect the number of CPU cores was found")
+ endif()
+ endif()
- if(NOT DEFINED CACHE{TUKLIB_CPUCORES_DEFINITIONS})
- set(TUKLIB_CPUCORES_FOUND 0 PARENT_SCOPE)
- message(WARNING
- "No method to detect the number of CPU cores was found")
- else()
- set(TUKLIB_CPUCORES_FOUND 1 PARENT_SCOPE)
- tuklib_add_definitions(${TARGET_OR_ALL} ${TUKLIB_CPUCORES_DEFINITIONS})
+ if(TUKLIB_CPUCORES_FOUND)
+ tuklib_add_definitions("${TARGET_OR_ALL}"
+ "${TUKLIB_CPUCORES_DEFINITIONS}")
endif()
endfunction()
diff --git a/cmake/tuklib_integer.cmake b/cmake/tuklib_integer.cmake
index aeb7ff6f..d7e2e28c 100644
--- a/cmake/tuklib_integer.cmake
+++ b/cmake/tuklib_integer.cmake
@@ -7,7 +7,7 @@
# You can do whatever you want with this file.
#
-include(${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake)
+include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
include(TestBigEndian)
include(CheckCSourceCompiles)
include(CheckIncludeFile)
@@ -22,7 +22,7 @@ function(tuklib_integer TARGET_OR_ALL)
if(NOT DEFINED WORDS_BIGENDIAN)
message(FATAL_ERROR "Cannot determine endianness")
endif()
- tuklib_add_definition_if(${TARGET_OR_ALL} WORDS_BIGENDIAN)
+ tuklib_add_definition_if("${TARGET_OR_ALL}" WORDS_BIGENDIAN)
# Look for a byteswapping method.
check_c_source_compiles("
@@ -36,24 +36,25 @@ function(tuklib_integer TARGET_OR_ALL)
"
HAVE___BUILTIN_BSWAPXX)
if(HAVE___BUILTIN_BSWAPXX)
- tuklib_add_definitions(${TARGET_OR_ALL} HAVE___BUILTIN_BSWAPXX)
+ tuklib_add_definitions("${TARGET_OR_ALL}" HAVE___BUILTIN_BSWAPXX)
else()
check_include_file(byteswap.h HAVE_BYTESWAP_H)
if(HAVE_BYTESWAP_H)
- tuklib_add_definitions(${TARGET_OR_ALL} HAVE_BYTESWAP_H)
+ tuklib_add_definitions("${TARGET_OR_ALL}" HAVE_BYTESWAP_H)
check_symbol_exists(bswap_16 byteswap.h HAVE_BSWAP_16)
- tuklib_add_definition_if(${TARGET_OR_ALL} HAVE_BSWAP_16)
+ tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_BSWAP_16)
check_symbol_exists(bswap_32 byteswap.h HAVE_BSWAP_32)
- tuklib_add_definition_if(${TARGET_OR_ALL} HAVE_BSWAP_32)
+ tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_BSWAP_32)
check_symbol_exists(bswap_64 byteswap.h HAVE_BSWAP_64)
- tuklib_add_definition_if(${TARGET_OR_ALL} HAVE_BSWAP_64)
+ tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_BSWAP_64)
else()
check_include_file(sys/endian.h HAVE_SYS_ENDIAN_H)
if(HAVE_SYS_ENDIAN_H)
- tuklib_add_definitions(${TARGET_OR_ALL} HAVE_SYS_ENDIAN_H)
+ tuklib_add_definitions("${TARGET_OR_ALL}" HAVE_SYS_ENDIAN_H)
else()
check_include_file(sys/byteorder.h HAVE_SYS_BYTEORDER_H)
- tuklib_add_definition_if(${TARGET_OR_ALL} HAVE_SYS_BYTEORDER_H)
+ tuklib_add_definition_if("${TARGET_OR_ALL}"
+ HAVE_SYS_BYTEORDER_H)
endif()
endif()
endif()
@@ -72,16 +73,17 @@ function(tuklib_integer TARGET_OR_ALL)
# on ARM and always assumes that unaligned is fast on ARM.
set(FAST_UNALIGNED_GUESS OFF)
if(CMAKE_SYSTEM_PROCESSOR MATCHES
- [Xx3456]86|^[Xx]64|^[Aa][Mm][Dd]64|^[Aa][Rr][Mm]|^aarch|^powerpc|^ppc)
+ "[Xx3456]86|^[Xx]64|^[Aa][Mm][Dd]64|^[Aa][Rr][Mm]|^aarch|^powerpc|^ppc")
if(NOT WORDS_BIGENDIAN OR
- NOT CMAKE_SYSTEM_PROCESSOR MATCHES ^powerpc|^ppc)
+ NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc|^ppc")
set(FAST_UNALIGNED_GUESS ON)
endif()
endif()
option(TUKLIB_FAST_UNALIGNED_ACCESS
- "Enable if the system supports *fast* unaligned memory access with 16-bit and 32-bit integers."
- ${FAST_UNALIGNED_GUESS})
- tuklib_add_definition_if(${TARGET_OR_ALL} TUKLIB_FAST_UNALIGNED_ACCESS)
+ "Enable if the system supports *fast* unaligned memory access \
+with 16-bit and 32-bit integers."
+ "${FAST_UNALIGNED_GUESS}")
+ tuklib_add_definition_if("${TARGET_OR_ALL}" TUKLIB_FAST_UNALIGNED_ACCESS)
# Unsafe type punning:
option(TUKLIB_USE_UNSAFE_TYPE_PUNNING
@@ -90,11 +92,11 @@ may result in broken code. However, this might improve performance \
in some cases, especially with old compilers \
(e.g. GCC 3 and early 4.x on x86, GCC < 6 on ARMv6 and ARMv7)."
OFF)
- tuklib_add_definition_if(${TARGET_OR_ALL} TUKLIB_USE_UNSAFE_TYPE_PUNNING)
+ tuklib_add_definition_if("${TARGET_OR_ALL}" TUKLIB_USE_UNSAFE_TYPE_PUNNING)
# Check for GCC/Clang __builtin_assume_aligned().
check_c_source_compiles(
"int main(void) { __builtin_assume_aligned(\"\", 1); return 0; }"
HAVE___BUILTIN_ASSUME_ALIGNED)
- tuklib_add_definition_if(${TARGET_OR_ALL} HAVE___BUILTIN_ASSUME_ALIGNED)
+ tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE___BUILTIN_ASSUME_ALIGNED)
endfunction()
diff --git a/cmake/tuklib_mbstr.cmake b/cmake/tuklib_mbstr.cmake
index a39a96b4..e073be6a 100644
--- a/cmake/tuklib_mbstr.cmake
+++ b/cmake/tuklib_mbstr.cmake
@@ -7,14 +7,14 @@
# You can do whatever you want with this file.
#
-include(${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake)
+include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
include(CheckSymbolExists)
function(tuklib_mbstr TARGET_OR_ALL)
check_symbol_exists(mbrtowc wchar.h HAVE_MBRTOWC)
- tuklib_add_definition_if(${TARGET_OR_ALL} HAVE_MBRTOWC)
+ tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_MBRTOWC)
# NOTE: wcwidth() requires _GNU_SOURCE or _XOPEN_SOURCE on GNU/Linux.
check_symbol_exists(wcwidth wchar.h HAVE_WCWIDTH)
- tuklib_add_definition_if(${TARGET_OR_ALL} HAVE_WCWIDTH)
+ tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_WCWIDTH)
endfunction()
diff --git a/cmake/tuklib_physmem.cmake b/cmake/tuklib_physmem.cmake
index dc895a15..ea5bcc46 100644
--- a/cmake/tuklib_physmem.cmake
+++ b/cmake/tuklib_physmem.cmake
@@ -10,15 +10,11 @@
# You can do whatever you want with this file.
#
-include(${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake)
+include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
include(CheckCSourceCompiles)
include(CheckIncludeFile)
function(tuklib_physmem_internal_check)
- if(CACHE{TUKLIB_PHYSMEM_DEFINITIONS})
- return()
- endif()
-
# Shortcut on Windows:
if(WIN32 OR CYGWIN)
# Nothing to do, the tuklib_physmem.c handles it.
@@ -134,16 +130,21 @@ function(tuklib_physmem_internal_check)
endfunction()
function(tuklib_physmem TARGET_OR_ALL)
- message(STATUS "Checking how to detect the amount of physical memory")
-
- tuklib_physmem_internal_check()
+ if(NOT DEFINED CACHE{TUKLIB_PHYSMEM_FOUND})
+ message(STATUS "Checking how to detect the amount of physical memory")
+ tuklib_physmem_internal_check()
- if(NOT DEFINED CACHE{TUKLIB_PHYSMEM_DEFINITIONS})
- set(TUKLIB_PHYSMEM_FOUND 0 PARENT_SCOPE)
- message(WARNING
+ if(DEFINED CACHE{TUKLIB_PHYSMEM_DEFINITIONS})
+ set(TUKLIB_PHYSMEM_FOUND 1 CACHE INTERNAL "")
+ else()
+ set(TUKLIB_PHYSMEM_FOUND 0 CACHE INTERNAL "")
+ message(WARNING
"No method to detect the amount of physical memory was found")
- else()
- set(TUKLIB_PHYSMEM_FOUND 1 PARENT_SCOPE)
- tuklib_add_definitions(${TARGET_OR_ALL} ${TUKLIB_PHYSMEM_DEFINITIONS})
+ endif()
+ endif()
+
+ if(TUKLIB_PHYSMEM_FOUND)
+ tuklib_add_definitions("${TARGET_OR_ALL}"
+ "${TUKLIB_PHYSMEM_DEFINITIONS}")
endif()
endfunction()
diff --git a/cmake/tuklib_progname.cmake b/cmake/tuklib_progname.cmake
index 417495e6..0fa1d3d7 100644
--- a/cmake/tuklib_progname.cmake
+++ b/cmake/tuklib_progname.cmake
@@ -7,13 +7,13 @@
# You can do whatever you want with this file.
#
-include(${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake)
+include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
include(CheckSymbolExists)
function(tuklib_progname TARGET_OR_ALL)
# NOTE: This glibc extension requires _GNU_SOURCE.
check_symbol_exists(program_invocation_name errno.h
HAVE_DECL_PROGRAM_INVOCATION_NAME)
- tuklib_add_definition_if(${TARGET_OR_ALL}
+ tuklib_add_definition_if("${TARGET_OR_ALL}"
HAVE_DECL_PROGRAM_INVOCATION_NAME)
endfunction()