boostorg / boost_install

8 stars 32 forks source link

cmake configs don't allow static vs shared library paths #49

Open kallisti5 opened 3 years ago

kallisti5 commented 3 years ago

The cmake configs don't allow static vs shared library paths...

For example, from tools/boost_install/boost-install.jam

/boot/system/lib/cmake/boost_wave-1.70.0/boost_wave-config.cmake:get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE)

That sets _BOOST_LIBDIR to the cmake dir ../ (aka /usr/lib/cmake/../ for libraries)

Then all libraries are put into it...

/boot/system/lib/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-static.cmake:  IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/libboost_unit_test_framework.a"
/boot/system/lib/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-shared.cmake:  IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/libboost_unit_test_framework.so.1.70.0"

This is not the case on all operating systems. It's a common design to have the static libraries in a different prefix path. Example:

It looks like a _BOOST_STATIC_LIBDIR or something is needed?