760f3a0a48
Right now, CMake files are installed in <prefix>/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 <issam.e.maghni@mailbox.org>
39 lines
1.1 KiB
CMake
39 lines
1.1 KiB
CMake
cmake_minimum_required(VERSION 2.8.12)
|
|
|
|
#
|
|
# Simulate configuring and building Mbed TLS as the user might do it. We'll
|
|
# install into a directory inside our own build directory.
|
|
#
|
|
|
|
set(MbedTLS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../..")
|
|
set(MbedTLS_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/mbedtls")
|
|
set(MbedTLS_BINARY_DIR "${MbedTLS_INSTALL_DIR}${CMAKE_FILES_DIRECTORY}")
|
|
|
|
execute_process(
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
"-H${MbedTLS_SOURCE_DIR}"
|
|
"-B${MbedTLS_BINARY_DIR}"
|
|
"-DENABLE_PROGRAMS=NO"
|
|
"-DENABLE_TESTING=NO"
|
|
"-DCMAKE_INSTALL_PREFIX=${MbedTLS_INSTALL_DIR}")
|
|
|
|
execute_process(
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
--build "${MbedTLS_BINARY_DIR}"
|
|
--target install)
|
|
|
|
#
|
|
# Locate the package.
|
|
#
|
|
|
|
list(INSERT CMAKE_PREFIX_PATH 0 "${MbedTLS_INSTALL_DIR}")
|
|
find_package(MbedTLS REQUIRED)
|
|
|
|
#
|
|
# At this point, the Mbed TLS targets should have been imported, and we can now
|
|
# link to them from our own program.
|
|
#
|
|
|
|
add_executable(cmake_package_install cmake_package_install.c)
|
|
target_link_libraries(cmake_package_install
|
|
MbedTLS::mbedcrypto MbedTLS::mbedtls MbedTLS::mbedx509)
|