Dear all. First of all, thank you very much for a wonderful and solid piece of software. It is highly appreciated! Secondly, I have problems building libcurl agaist mbedtls WITHOUT installing the mbedtls build on the build host. I hope someone will be able to help me out here.
Thanks, Morten # Background I need to build libcurl (TAG curl-7_84_0) using mbedtls (TAG v3.2.1) as two shared libraries _without_ installing mbedtls on the build machine, but I fail with the following error: -------------------------------------------------------- MBEDTLS_INCLUDE_DIRS-NOTFOUND -------------------------------------------------------- CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find MbedTLS (missing: MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY) Call Stack (most recent call first): /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) curl/curl/CMake/FindMbedTLS.cmake:38 (find_package_handle_standard_args) curl/curl/CMakeLists.txt:468 (find_package) # Reproducing Steps to reproduce on a linux host with docker, bash and git: 1. unpack the attached tarball as $FOO. 2. cd $FOO 3. ./getcode.sh 4. docker build . -t curl_mbed_workshop 5. docker run -ti -v `pwd`:/code curl_mbed_workshop Run the commands from here in the docker container 6. cd 7. mkdir build 8. cd build 9. cmake -GNinja /code 10. See the error mentioned above My setup is capable of building both libraries as proved in Appendix 1. # What I have tried I have tried to specify libraries and folders as ``` set(MBEDTLS_INCLUDE_DIRS "something I thought make sense" CACHE STRING "blah foo" FORCE) set(MBEDTLS_LIBRARY "something I thought make sense" CACHE STRING "blah foo" FORCE) set(MBEDX509_LIBRARY "something I thought make sense" CACHE STRING "blah foo" FORCE) set(MBEDCRYPTO_LIBRARY "something I thought make sense" CACHE STRING "blah foo" FORCE) ``` in the CMakeFile.txt that includes curl as a sub_directory but in vain. # Question How do I build mbedtls and libcurl using mbedtls using cmake withtout installing mbedtls on the build host? # Appendix 1: Proof that the buildenv is capable These snippets build mbedtls as a shared library, installs it on the build host and then builds libcurl and the command line utility curl and thus proves that the environment is capable of building mbedtls and libcurl. ``` docker build . -t curl_mbed_workshop docker run -ti -v `pwd`:/code curl_mbed_workshop # The following commands are to be run in the docker container: cd mkdir buildmbed cd buildmbed cmake -GNinja -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=ON /code/mbedtls/mbedtls/ ninja ninja install cd mkdir buildcurl cd buildcurl cmake -GNinja -DCURL_USE_MBEDTLS=ON /code/curl/curl/ ninja ./src/curl <https://google.com> ```
curl_and_mbed_without_installing_mbed.tgz
Description: application/compressed
-- Unsubscribe: https://lists.haxx.se/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html