From 760f3a0a48f163323835798acf0eb6b2231aa71e Mon Sep 17 00:00:00 2001 From: "Issam E. Maghni" Date: Sat, 19 Nov 2022 18:34:01 +0000 Subject: [PATCH] Install CMake files in MbedTLS dir Right now, CMake files are installed in /cmake. That being said, it gets easily bloated, and the standard is to use a directory with the same name as the project. I discovered this issue with this "bug": https://github.com/termux/termux-packages/issues/12416 The issue's author claimed that MbedTLS's files were not installed in the lib directory. But the patch applied by termux team broke CMake's search of MbedTLS config files. So I wanted to upstream the real fix here instead. Here are some examples of projects using directories: - https://github.com/xiph/flac/blob/1.4.2/CMakeLists.txt#L239 - https://gitlab.freedesktop.org/dbus/dbus/-/blob/dbus-1.15.2/CMakeLists.txt#L675 - https://github.com/catchorg/Catch2/blob/v3.2.0/CMakeLists.txt#L62 - https://github.com/capnproto/capnproto/blob/v0.10.2/c++/CMakeLists.txt#L162 Signed-off-by: Issam E. Maghni --- CMakeLists.txt | 4 ++-- ChangeLog.d/cmake-install.txt | 3 +++ programs/test/cmake_package_install/CMakeLists.txt | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 ChangeLog.d/cmake-install.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 59a960a8b..f72de6420 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -355,7 +355,7 @@ if(NOT DISABLE_PACKAGE_CONFIG_AND_INSTALL) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake/MbedTLSConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake/MbedTLSConfigVersion.cmake" - DESTINATION "cmake") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/MbedTLS") export( EXPORT MbedTLSTargets @@ -365,7 +365,7 @@ if(NOT DISABLE_PACKAGE_CONFIG_AND_INSTALL) install( EXPORT MbedTLSTargets NAMESPACE MbedTLS:: - DESTINATION "cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/MbedTLS" FILE "MbedTLSTargets.cmake") if(CMAKE_VERSION VERSION_GREATER 3.15 OR CMAKE_VERSION VERSION_EQUAL 3.15) diff --git a/ChangeLog.d/cmake-install.txt b/ChangeLog.d/cmake-install.txt new file mode 100644 index 000000000..d8eb72e1e --- /dev/null +++ b/ChangeLog.d/cmake-install.txt @@ -0,0 +1,3 @@ +Changes + * Install the .cmake files into CMAKE_INSTALL_LIBDIR/cmake/MbedTLS, + typically /usr/lib/cmake/MbedTLS. diff --git a/programs/test/cmake_package_install/CMakeLists.txt b/programs/test/cmake_package_install/CMakeLists.txt index 711a1e506..fb5ad51b5 100644 --- a/programs/test/cmake_package_install/CMakeLists.txt +++ b/programs/test/cmake_package_install/CMakeLists.txt @@ -26,7 +26,7 @@ execute_process( # Locate the package. # -set(MbedTLS_DIR "${MbedTLS_INSTALL_DIR}/cmake") +list(INSERT CMAKE_PREFIX_PATH 0 "${MbedTLS_INSTALL_DIR}") find_package(MbedTLS REQUIRED) #