summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml6
-rwxr-xr-x.gitlab/ci/ninja-nightly.sh11
-rwxr-xr-x.gitlab/ci/ninja.sh4
-rw-r--r--.gitlab/os-linux.yml3
-rw-r--r--.gitlab/os-macos.yml3
-rw-r--r--Help/release/dev/FindJasper-imported-target.rst4
-rw-r--r--Modules/CMakeDetermineCompilerId.cmake13
-rw-r--r--Modules/Compiler/NVHPC-C.cmake11
-rw-r--r--Modules/Compiler/NVHPC-CXX.cmake10
-rw-r--r--Modules/Compiler/NVHPC.cmake12
-rw-r--r--Modules/FindBLAS.cmake50
-rw-r--r--Modules/FindCUDAToolkit.cmake19
-rw-r--r--Modules/FindJasper.cmake95
-rw-r--r--Modules/FindLAPACK.cmake10
-rw-r--r--Modules/GNUInstallDirs.cmake15
-rw-r--r--Source/CMakeVersion.cmake2
-rw-r--r--Tests/CMakeLists.txt1
-rw-r--r--Tests/FindJasper/CMakeLists.txt10
-rw-r--r--Tests/FindJasper/Test/CMakeLists.txt16
-rw-r--r--Tests/FindJasper/Test/main.c17
-rw-r--r--Tests/RunCMake/CMakeLists.txt2
-rw-r--r--Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt4
-rw-r--r--Tests/RunCMake/file/RunCMakeTest.cmake4
23 files changed, 230 insertions, 92 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a964b46..3343918 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -166,6 +166,8 @@ test:debian10-ninja:
- .cmake_junit_artifacts
- .run_dependent
- .needs_centos6_x86_64
+ variables:
+ CMAKE_CI_JOB_NIGHTLY_NINJA: "true"
test:debian10-aarch64-ninja:
extends:
@@ -572,7 +574,7 @@ test:fedora34-asan:
- .fedora34_asan
- .cmake_memcheck_linux
- .linux_builder_tags_qt
- - .run_automatically
+ - .run_dependent
dependencies:
- build:fedora34-asan
needs:
@@ -611,6 +613,8 @@ test:macos-x86_64-ninja:
- build:macos-x86_64-ninja
needs:
- build:macos-x86_64-ninja
+ variables:
+ CMAKE_CI_JOB_NIGHTLY_NINJA: "true"
test:macos-arm64-ninja:
extends:
diff --git a/.gitlab/ci/ninja-nightly.sh b/.gitlab/ci/ninja-nightly.sh
new file mode 100755
index 0000000..b78b64e
--- /dev/null
+++ b/.gitlab/ci/ninja-nightly.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+cd .gitlab
+
+git clone https://github.com/ninja-build/ninja.git ninja-src
+cmake -S ninja-src -B ninja-src/build -DCMAKE_BUILD_TYPE=Release
+cmake --build ninja-src/build --parallel --target ninja
+mv ninja-src/build/ninja .
+rm -rf ninja-src
diff --git a/.gitlab/ci/ninja.sh b/.gitlab/ci/ninja.sh
index 8ead670..866d1d5 100755
--- a/.gitlab/ci/ninja.sh
+++ b/.gitlab/ci/ninja.sh
@@ -2,6 +2,10 @@
set -e
+if test "$CMAKE_CI_JOB_NIGHTLY_NINJA" = "true" -a "$CMAKE_CI_NIGHTLY" = "true"; then
+ exec .gitlab/ci/ninja-nightly.sh
+fi
+
readonly version="1.10.2"
baseurl="https://github.com/ninja-build/ninja/releases/download/v$version"
diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml
index de370db..7fce177 100644
--- a/.gitlab/os-linux.yml
+++ b/.gitlab/os-linux.yml
@@ -321,8 +321,9 @@
.before_script_linux: &before_script_linux
- source .gitlab/ci/env.sh
- .gitlab/ci/cmake.sh
+ - export PATH=$PWD/.gitlab/cmake/bin:$PATH
- .gitlab/ci/ninja.sh
- - export PATH=$PWD/.gitlab:$PWD/.gitlab/cmake/bin:$PATH
+ - export PATH=$PWD/.gitlab:$PATH
- cmake --version
- ninja --version
diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml
index b79d46d..3ffd9d7 100644
--- a/.gitlab/os-macos.yml
+++ b/.gitlab/os-macos.yml
@@ -127,8 +127,9 @@
.before_script_macos: &before_script_macos
- .gitlab/ci/cmake.sh
+ - export PATH=$PWD/.gitlab/cmake/bin:$PATH
- .gitlab/ci/ninja.sh
- - export PATH=$PWD/.gitlab:$PWD/.gitlab/cmake/bin:$PATH
+ - export PATH=$PWD/.gitlab:$PATH
- cmake --version
- ninja --version
# Download Qt
diff --git a/Help/release/dev/FindJasper-imported-target.rst b/Help/release/dev/FindJasper-imported-target.rst
new file mode 100644
index 0000000..33ee885
--- /dev/null
+++ b/Help/release/dev/FindJasper-imported-target.rst
@@ -0,0 +1,4 @@
+FindJasper-imported-target
+--------------------------
+
+* The :module:`FindJasper` module now provides an imported target.
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index b38de8a..fa283fe 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -539,7 +539,8 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
else()
set(id_toolset "")
endif()
- if("${lang}" STREQUAL "Swift")
+ set(id_lang_version "")
+ if("x${lang}" STREQUAL "xSwift")
if(CMAKE_Swift_LANGUAGE_VERSION)
set(id_lang_version "SWIFT_VERSION = ${CMAKE_Swift_LANGUAGE_VERSION};")
elseif(XCODE_VERSION VERSION_GREATER_EQUAL 10.2)
@@ -549,8 +550,14 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
else()
set(id_lang_version "SWIFT_VERSION = 2.3;")
endif()
- else()
- set(id_lang_version "")
+ elseif("x${lang}" STREQUAL "xC" OR "x${lang}" STREQUAL "xOBJC")
+ if(CMAKE_${lang}_COMPILER_ID_FLAGS MATCHES "(^| )(-std=[^ ]+)( |$)")
+ set(id_lang_version "OTHER_CFLAGS = \"${CMAKE_MATCH_2}\";")
+ endif()
+ elseif("x${lang}" STREQUAL "xCXX" OR "x${lang}" STREQUAL "xOBJCXX")
+ if(CMAKE_${lang}_COMPILER_ID_FLAGS MATCHES "(^| )(-std=[^ ]+)( |$)")
+ set(id_lang_version "OTHER_CPLUSPLUSFLAGS = \"${CMAKE_MATCH_2}\";")
+ endif()
endif()
if(CMAKE_OSX_DEPLOYMENT_TARGET)
set(id_deployment_target
diff --git a/Modules/Compiler/NVHPC-C.cmake b/Modules/Compiler/NVHPC-C.cmake
index e37aad5..9295abd 100644
--- a/Modules/Compiler/NVHPC-C.cmake
+++ b/Modules/Compiler/NVHPC-C.cmake
@@ -9,4 +9,15 @@ if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 20.11)
set(CMAKE_C17_EXTENSION_COMPILE_OPTION -std=gnu17)
endif()
+if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 21.07)
+ set(CMAKE_DEPFILE_FLAGS_C "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
+ set(CMAKE_C_DEPFILE_FORMAT gcc)
+ set(CMAKE_C_DEPENDS_USE_COMPILER TRUE)
+else()
+ # Before NVHPC 21.07 the `-MD` flag implicitly
+ # implies `-E` and therefore compilation and dependency generation
+ # can't occur in the same invocation
+ set(CMAKE_C_DEPENDS_EXTRA_COMMANDS "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x c -M <SOURCE> -MT <OBJECT> -MD<DEP_FILE>")
+endif()
+
__compiler_nvhpc(C)
diff --git a/Modules/Compiler/NVHPC-CXX.cmake b/Modules/Compiler/NVHPC-CXX.cmake
index 534e822..59ba7bf 100644
--- a/Modules/Compiler/NVHPC-CXX.cmake
+++ b/Modules/Compiler/NVHPC-CXX.cmake
@@ -9,4 +9,14 @@ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20.11)
set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION -std=gnu++20)
endif()
+if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 21.07)
+ set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
+ set(CMAKE_CXX_DEPFILE_FORMAT gcc)
+ set(CMAKE_CXX_DEPENDS_USE_COMPILER TRUE)
+else()
+ # Before NVHPC 21.07 the `-MD` flag implicitly
+ # implies `-E` and therefore compilation and dependency generation
+ # can't occur in the same invocation
+ set(CMAKE_CXX_DEPENDS_EXTRA_COMMANDS "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x c++ -M <SOURCE> -MT <OBJECT> -MD<DEP_FILE>")
+endif()
__compiler_nvhpc(CXX)
diff --git a/Modules/Compiler/NVHPC.cmake b/Modules/Compiler/NVHPC.cmake
index a85df71..7048670 100644
--- a/Modules/Compiler/NVHPC.cmake
+++ b/Modules/Compiler/NVHPC.cmake
@@ -12,16 +12,4 @@ include(Compiler/PGI)
macro(__compiler_nvhpc lang)
# Logic specific to NVHPC.
-
- if(CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 21.07)
- set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
- set(CMAKE_${lang}_DEPFILE_FORMAT gcc)
- set(CMAKE_${lang}_DEPENDS_USE_COMPILER TRUE)
- else()
- # Before NVHPC 21.07 the `-MD` flag implicitly
- # implies `-E` and therefore compilation and dependency generation
- # can't occur in the same invocation
- set(CMAKE_${lang}_DEPENDS_EXTRA_COMMANDS "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> ${CMAKE_${lang}_COMPILE_OPTIONS_EXPLICIT_LANGUAGE} -M <SOURCE> -MT <OBJECT> -MD<DEP_FILE>")
- endif()
-
endmacro()
diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index f16d176..308138f 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -326,9 +326,9 @@ function(CHECK_BLAS_LIBRARIES LIBRARIES _prefix _name _flags _list _deps _addlib
list(APPEND _libraries "${_library}")
else()
string(REGEX REPLACE "[^A-Za-z0-9]" "_" _lib_var "${_library}")
- set(_combined_name ${_combined_name}_${_lib_var})
+ string(APPEND _combined_name "_${_lib_var}")
if(NOT "${_deps}" STREQUAL "")
- set(_combined_name ${_combined_name}_deps)
+ string(APPEND _combined_name "_deps")
endif()
if(_libraries_work)
find_library(${_prefix}_${_lib_var}_LIBRARY
@@ -346,7 +346,7 @@ function(CHECK_BLAS_LIBRARIES LIBRARIES _prefix _name _flags _list _deps _addlib
foreach(_flag ${_flags})
string(REGEX REPLACE "[^A-Za-z0-9]" "_" _flag_var "${_flag}")
- set(_combined_name ${_combined_name}_${_flag_var})
+ string(APPEND _combined_name "_${_flag_var}")
endforeach()
if(_libraries_work)
# Test this combination of libraries.
@@ -797,20 +797,20 @@ if(BLA_VENDOR MATCHES "Arm" OR BLA_VENDOR STREQUAL "All")
# Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp
if(BLA_VENDOR MATCHES "_mp")
- set(_blas_armpl_lib "${_blas_armpl_lib}_mp")
+ string(APPEND _blas_armpl_lib "_mp")
endif()
if(NOT BLAS_LIBRARIES)
- check_blas_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "${_blas_armpl_lib}"
- ""
- ""
- ""
- )
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "${_blas_armpl_lib}"
+ ""
+ ""
+ ""
+ )
endif()
unset(_blas_armpl_lib)
endif()
@@ -942,7 +942,7 @@ if(BLA_VENDOR MATCHES "SCSL" OR BLA_VENDOR STREQUAL "All")
string(APPEND _blas_scsl_lib "_i8")
endif()
if(BLA_VENDOR MATCHES "_mp")
- set(_blas_scsl_lib "${_blas_scsl_lib}_mp")
+ string(APPEND _blas_scsl_lib "_mp")
endif()
if(NOT BLAS_LIBRARIES)
@@ -982,7 +982,7 @@ if(BLA_VENDOR MATCHES "IBMESSL" OR BLA_VENDOR STREQUAL "All")
set(_blas_essl_lib "essl")
if(BLA_VENDOR MATCHES "_SMP")
- set(_blas_essl_lib "${_blas_essl_lib}smp")
+ string(APPEND _blas_essl_lib "smp")
endif()
if(_blas_sizeof_integer EQUAL 8)
string(APPEND _blas_essl_lib "6464")
@@ -1197,17 +1197,17 @@ endif()
# Elbrus Math Library?
if(BLA_VENDOR MATCHES "EML" OR BLA_VENDOR STREQUAL "All")
- set(_blas_eml_lib "eml")
+ set(_blas_eml_lib "eml")
- if(_blas_sizeof_integer EQUAL 8)
- string(APPEND _blas_eml_lib "_ilp64")
- endif()
- # Check for OpenMP support, VIA BLA_VENDOR of eml_mt
- if(BLA_VENDOR MATCHES "_mt")
- set(_blas_eml_lib "${_blas_eml_lib}_mt")
- endif()
+ if(_blas_sizeof_integer EQUAL 8)
+ string(APPEND _blas_eml_lib "_ilp64")
+ endif()
+ # Check for OpenMP support, VIA BLA_VENDOR of eml_mt
+ if(BLA_VENDOR MATCHES "_mt")
+ string(APPEND _blas_eml_lib "_mt")
+ endif()
- if(NOT BLAS_LIBRARIES)
+ if(NOT BLAS_LIBRARIES)
check_blas_libraries(
BLAS_LIBRARIES
BLAS
diff --git a/Modules/FindCUDAToolkit.cmake b/Modules/FindCUDAToolkit.cmake
index 92042d2..d22a676 100644
--- a/Modules/FindCUDAToolkit.cmake
+++ b/Modules/FindCUDAToolkit.cmake
@@ -742,6 +742,19 @@ elseif(NOT CUDAToolkit_FIND_QUIETLY)
message(STATUS "Unable to find cuda_runtime.h in \"${CUDAToolkit_TARGET_DIR}/include\" for CUDAToolkit_INCLUDE_DIR.")
endif()
+# The NVHPC layout moves math library headers and libraries to a sibling directory.
+# Create a separate variable so this directory can be selectively added to math targets.
+if(NOT EXISTS "${CUDAToolkit_INCLUDE_DIR}/cublas_v2.h")
+ set(CUDAToolkit_MATH_INCLUDE_DIR "${CUDAToolkit_TARGET_DIR}/../../math_libs/include")
+ cmake_path(NORMAL_PATH CUDAToolkit_MATH_INCLUDE_DIR)
+ if(NOT EXISTS "${CUDAToolkit_MATH_INCLUDE_DIR}/cublas_v2.h")
+ if(NOT CUDAToolkit_FIND_QUIETLY)
+ message(STATUS "Unable to find cublas_v2.h in either \"${CUDAToolkit_INCLUDE_DIR}\" or \"${CUDAToolkit_MATH_INCLUDE_DIR}\"")
+ endif()
+ unset(CUDAToolkit_MATH_INCLUDE_DIR)
+ endif()
+endif()
+
if(CUDAToolkit_NVCC_EXECUTABLE AND
CMAKE_CUDA_COMPILER_VERSION AND
CUDAToolkit_NVCC_EXECUTABLE STREQUAL CMAKE_CUDA_COMPILER)
@@ -854,6 +867,12 @@ if(CUDAToolkit_FOUND)
if (NOT TARGET CUDA::${lib_name} AND CUDA_${lib_name}_LIBRARY)
add_library(CUDA::${lib_name} UNKNOWN IMPORTED)
target_include_directories(CUDA::${lib_name} SYSTEM INTERFACE "${CUDAToolkit_INCLUDE_DIRS}")
+ if(DEFINED CUDAToolkit_MATH_INCLUDE_DIR)
+ string(FIND ${CUDA_${lib_name}_LIBRARY} "math_libs" math_libs)
+ if(NOT ${math_libs} EQUAL -1)
+ target_include_directories(CUDA::${lib_name} SYSTEM INTERFACE "${CUDAToolkit_MATH_INCLUDE_DIR}")
+ endif()
+ endif()
set_property(TARGET CUDA::${lib_name} PROPERTY IMPORTED_LOCATION "${CUDA_${lib_name}_LIBRARY}")
foreach(dep ${arg_DEPS})
if(TARGET CUDA::${dep})
diff --git a/Modules/FindJasper.cmake b/Modules/FindJasper.cmake
index 729a503..9a62669 100644
--- a/Modules/FindJasper.cmake
+++ b/Modules/FindJasper.cmake
@@ -5,43 +5,86 @@
FindJasper
----------
-Try to find the Jasper JPEG2000 library
+Find the Jasper JPEG2000 library.
-Once done this will define
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
-::
+``Jasper::Jasper``
+ The jasper library, if found.
- JASPER_FOUND - system has Jasper
- JASPER_INCLUDE_DIR - the Jasper include directory
- JASPER_LIBRARIES - the libraries needed to use Jasper
- JASPER_VERSION_STRING - the version of Jasper found (since CMake 2.8.8)
-#]=======================================================================]
+Result Variables
+^^^^^^^^^^^^^^^^
-find_path(JASPER_INCLUDE_DIR jasper/jasper.h)
+This module defines the following variables:
+
+``JASPER_FOUND``
+ system has Jasper
+``JASPER_INCLUDE_DIRS``
+ .. versionadded:: 3.22
+
+ the Jasper include directory
+``JASPER_LIBRARIES``
+ the libraries needed to use Jasper
+``JASPER_VERSION_STRING``
+ the version of Jasper found
+
+Cache variables
+^^^^^^^^^^^^^^^
-if (NOT JASPER_LIBRARIES)
- find_package(JPEG)
+The following cache variables may also be set:
- find_library(JASPER_LIBRARY_RELEASE NAMES jasper libjasper)
- find_library(JASPER_LIBRARY_DEBUG NAMES jasperd)
+``JASPER_INCLUDE_DIR``
+ where to find jasper/jasper.h, etc.
+``JASPER_LIBRARY_RELEASE``
+ where to find the Jasper library (optimized).
+``JASPER_LIBARRY_DEBUG``
+ where to find the Jasper library (debug).
+#]=======================================================================]
- include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
- SELECT_LIBRARY_CONFIGURATIONS(JASPER)
-endif ()
+find_path(JASPER_INCLUDE_DIR jasper/jasper.h)
+mark_as_advanced(JASPER_INCLUDE_DIR)
-if (JASPER_INCLUDE_DIR AND EXISTS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h")
- file(STRINGS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" jasper_version_str REGEX "^#define[\t ]+JAS_VERSION[\t ]+\".*\".*")
+if(NOT JASPER_LIBRARIES)
+ find_package(JPEG)
+ find_library(JASPER_LIBRARY_RELEASE NAMES jasper libjasper)
+ find_library(JASPER_LIBRARY_DEBUG NAMES jasperd)
+ include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+ select_library_configurations(JASPER)
+endif()
- string(REGEX REPLACE "^#define[\t ]+JAS_VERSION[\t ]+\"([^\"]+)\".*" "\\1" JASPER_VERSION_STRING "${jasper_version_str}")
-endif ()
+if(JASPER_INCLUDE_DIR AND EXISTS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h")
+ file(STRINGS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" jasper_version_str REGEX "^#define[\t ]+JAS_VERSION[\t ]+\".*\".*")
+ string(REGEX REPLACE "^#define[\t ]+JAS_VERSION[\t ]+\"([^\"]+)\".*" "\\1" JASPER_VERSION_STRING "${jasper_version_str}")
+endif()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jasper
+find_package_handle_standard_args(Jasper
REQUIRED_VARS JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES
VERSION_VAR JASPER_VERSION_STRING)
-if (JASPER_FOUND)
- set(JASPER_LIBRARIES ${JASPER_LIBRARIES} ${JPEG_LIBRARIES} )
-endif ()
-
-mark_as_advanced(JASPER_INCLUDE_DIR)
+if(JASPER_FOUND)
+ set(JASPER_LIBRARIES ${JASPER_LIBRARIES} ${JPEG_LIBRARIES})
+ set(JASPER_INCLUDE_DIRS ${JASPER_INCLUDE_DIR})
+ if(NOT TARGET Jasper::Jasper)
+ add_library(Jasper::Jasper UNKNOWN IMPORTED)
+ if(JASPER_INCLUDE_DIRS)
+ set_target_properties(Jasper::Jasper PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${JASPER_INCLUDE_DIRS}")
+ endif()
+ if(EXISTS "${JASPER_LIBRARY_RELEASE}")
+ set_property(TARGET Jasper::Jasper APPEND PROPERTY
+ IMPORTED CONFIGURATION RELEASE)
+ set_target_properties(Jasper::Jasper PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+ IMPORTED_LOCATION "${JASPER_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${JASPER_LIBRARY_DEBUG}")
+ set_property(TARGET Jasper::Jasper APPEND PROPERTY
+ IMPORTED CONFIGURATION DEBUG)
+ set_target_properties(Jasper::Jasper PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+ IMPORTED_LOCATION "${JASPER_LIBRARY_DEBUG}")
+ endif()
+ endif()
+endif()
diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake
index 32d15db..5540965 100644
--- a/Modules/FindLAPACK.cmake
+++ b/Modules/FindLAPACK.cmake
@@ -181,9 +181,9 @@ function(CHECK_LAPACK_LIBRARIES LIBRARIES _prefix _name _flags _list _deps _addl
list(APPEND _libraries "${_library}")
else()
string(REGEX REPLACE "[^A-Za-z0-9]" "_" _lib_var "${_library}")
- set(_combined_name ${_combined_name}_${_lib_var})
+ string(APPEND _combined_name "_${_lib_var}")
if(NOT "${_deps}" STREQUAL "")
- set(_combined_name ${_combined_name}_deps)
+ string(APPEND _combined_name "_deps")
endif()
if(_libraries_work)
find_library(${_prefix}_${_lib_var}_LIBRARY
@@ -201,7 +201,7 @@ function(CHECK_LAPACK_LIBRARIES LIBRARIES _prefix _name _flags _list _deps _addl
foreach(_flag ${_flags})
string(REGEX REPLACE "[^A-Za-z0-9]" "_" _flag_var "${_flag}")
- set(_combined_name ${_combined_name}_${_flag_var})
+ string(APPEND _combined_name "_${_flag_var}")
endforeach()
if(_libraries_work)
# Test this combination of libraries.
@@ -511,7 +511,7 @@ if(NOT LAPACK_NOT_FOUND_MESSAGE)
# Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp
if(BLA_VENDOR MATCHES "_mp")
- set(LAPACK_armpl_LIB "${LAPACK_armpl_LIB}_mp")
+ string(APPEND LAPACK_armpl_LIB "_mp")
endif()
check_lapack_libraries(
@@ -559,7 +559,7 @@ if(NOT LAPACK_NOT_FOUND_MESSAGE)
endif()
# Check for OpenMP support, VIA BLA_VENDOR of scs_mp
if(BLA_VENDOR MATCHES "_mp")
- set(_lapack_scsl_lib "${_lapack_scsl_lib}_mp")
+ string(APPEND _lapack_scsl_lib "_mp")
endif()
check_lapack_libraries(
diff --git a/Modules/GNUInstallDirs.cmake b/Modules/GNUInstallDirs.cmake
index 1b9cfce..6ca424a 100644
--- a/Modules/GNUInstallDirs.cmake
+++ b/Modules/GNUInstallDirs.cmake
@@ -180,6 +180,8 @@ _GNUInstallDirs_cache_path(CMAKE_INSTALL_BINDIR "bin"
"User executables (bin)")
_GNUInstallDirs_cache_path(CMAKE_INSTALL_SBINDIR "sbin"
"System admin executables (sbin)")
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec"
+ "Program executables (libexec)")
_GNUInstallDirs_cache_path(CMAKE_INSTALL_SYSCONFDIR "etc"
"Read-only single-machine data (etc)")
_GNUInstallDirs_cache_path(CMAKE_INSTALL_SHAREDSTATEDIR "com"
@@ -301,19 +303,6 @@ set(_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE IN
unset(_libdir_set)
unset(__LAST_LIBDIR_DEFAULT)
-if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
- AND NOT CMAKE_CROSSCOMPILING
- AND NOT EXISTS "/etc/arch-release"
- AND EXISTS "/etc/debian_version" # is this a debian system ?
- AND "${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
- # see https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#usrlibexec
- # and https://www.debian.org/doc/debian-policy/ch-opersys#file-system-structure (section 9.1.1 bullet point 4)
- _GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "${CMAKE_INSTALL_LIBDIR}"
- "Program executables (${CMAKE_INSTALL_LIBDIR})")
-else()
- _GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec"
- "Program executables (libexec)")
-endif()
_GNUInstallDirs_cache_path(CMAKE_INSTALL_INCLUDEDIR "include"
"C header files (include)")
_GNUInstallDirs_cache_path(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include"
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index cff4806..8d06bc7 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,7 +1,7 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 21)
-set(CMake_VERSION_PATCH 20211006)
+set(CMake_VERSION_PATCH 20211008)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 20b6e25..d1f7b69 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1466,6 +1466,7 @@ if(BUILD_TESTING)
Iconv
ICU
Intl
+ Jasper
JPEG
JsonCpp
LAPACK
diff --git a/Tests/FindJasper/CMakeLists.txt b/Tests/FindJasper/CMakeLists.txt
new file mode 100644
index 0000000..1bfae78
--- /dev/null
+++ b/Tests/FindJasper/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_test(NAME FindJasper.Test COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindJasper/Test"
+ "${CMake_BINARY_DIR}/Tests/FindJasper/Test"
+ ${build_generator_args}
+ --build-project TestFindJasper
+ --build-options ${build_options}
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
diff --git a/Tests/FindJasper/Test/CMakeLists.txt b/Tests/FindJasper/Test/CMakeLists.txt
new file mode 100644
index 0000000..1e9467d
--- /dev/null
+++ b/Tests/FindJasper/Test/CMakeLists.txt
@@ -0,0 +1,16 @@
+cmake_minimum_required(VERSION 3.21)
+project(TestFindJasper C)
+include(CTest)
+
+find_package(Jasper)
+
+add_definitions(-DCMAKE_EXPECTED_JASPER_VERSION=${JASPER_VERSION_STRING})
+
+add_executable(test_jasper_tgt main.c)
+target_link_libraries(test_jasper_tgt Jasper::Jasper)
+add_test(NAME test_jasper_tgt COMMAND test_jasper_tgt)
+
+add_executable(test_jasper_var main.c)
+target_include_directories(test_jasper_var PRIVATE ${JASPER_INCLUDE_DIRS})
+target_link_libraries(test_jasper_var PRIVATE ${JASPER_LIBRARIES})
+add_test(NAME test_jasper_var COMMAND test_jasper_var)
diff --git a/Tests/FindJasper/Test/main.c b/Tests/FindJasper/Test/main.c
new file mode 100644
index 0000000..771344d
--- /dev/null
+++ b/Tests/FindJasper/Test/main.c
@@ -0,0 +1,17 @@
+#include <assert.h>
+// clang-format off
+#include <stdio.h>
+#include <jasper/jasper.h>
+// clang-format on
+
+int main()
+{
+ /* Without any JPEG file to open, test that the call fails as
+ expected. This tests that linking worked. */
+ jas_init();
+ jas_image_t* img = jas_image_create0();
+ jas_image_destroy(img);
+ jas_cleanup();
+
+ return (JAS_VERSION != CMAKE_EXPECTED_JASPER_VERSION);
+}
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index b7d38fb..e24ef58 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -419,7 +419,7 @@ add_RunCMake_test(ctest_update)
add_RunCMake_test(ctest_upload)
add_RunCMake_test(ctest_environment)
add_RunCMake_test(ctest_fixtures)
-add_RunCMake_test(file -DMSYS=${MSYS})
+add_RunCMake_test(file -DCYGWIN=${CYGWIN} -DMSYS=${MSYS})
add_RunCMake_test(file-CHMOD -DMSYS=${MSYS})
add_RunCMake_test(file-RPATH -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME})
add_RunCMake_test(find_file)
diff --git a/Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt b/Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt
index 89578ee..c38006c 100644
--- a/Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt
+++ b/Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt
@@ -5,7 +5,7 @@ CMAKE_INSTALL_DOCDIR='share/doc/Usr'
CMAKE_INSTALL_INCLUDEDIR='include'
CMAKE_INSTALL_INFODIR='share/info'
CMAKE_INSTALL_LIBDIR='lib/arch'
-CMAKE_INSTALL_LIBEXECDIR='lib/arch'
+CMAKE_INSTALL_LIBEXECDIR='libexec'
CMAKE_INSTALL_LOCALEDIR='share/locale'
CMAKE_INSTALL_LOCALSTATEDIR='var'
CMAKE_INSTALL_RUNSTATEDIR='var/run'
@@ -20,7 +20,7 @@ CMAKE_INSTALL_FULL_DOCDIR='/usr/share/doc/Usr'
CMAKE_INSTALL_FULL_INCLUDEDIR='/usr/include'
CMAKE_INSTALL_FULL_INFODIR='/usr/share/info'
CMAKE_INSTALL_FULL_LIBDIR='/usr/lib/arch'
-CMAKE_INSTALL_FULL_LIBEXECDIR='/usr/lib/arch'
+CMAKE_INSTALL_FULL_LIBEXECDIR='/usr/libexec'
CMAKE_INSTALL_FULL_LOCALEDIR='/usr/share/locale'
CMAKE_INSTALL_FULL_LOCALSTATEDIR='/var'
CMAKE_INSTALL_FULL_RUNSTATEDIR='/var/run'
diff --git a/Tests/RunCMake/file/RunCMakeTest.cmake b/Tests/RunCMake/file/RunCMakeTest.cmake
index 9efd3f4..aff4735 100644
--- a/Tests/RunCMake/file/RunCMakeTest.cmake
+++ b/Tests/RunCMake/file/RunCMakeTest.cmake
@@ -97,7 +97,9 @@ if(NOT WIN32
run_cmake(READ_SYMLINK)
run_cmake(READ_SYMLINK-noexist)
run_cmake(READ_SYMLINK-notsymlink)
- run_cmake(INSTALL-FOLLOW_SYMLINK_CHAIN)
+ if(NOT CYGWIN)
+ run_cmake(INSTALL-FOLLOW_SYMLINK_CHAIN)
+ endif()
endif()
run_cmake(REAL_PATH-unexpected-arg)