diff options
| author | dweckmann <didier.weckmann@ircad.fr> | 2020-12-21 20:17:30 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-21 11:17:30 -0800 |
| commit | f7e746dcae436ba29ed89c42b4dc0f788189a8de (patch) | |
| tree | 0b01f847e6216eb14119ab17838698f302b8c0e1 /scripts | |
| parent | d97eae3338f1a4657c35ad136ea426f66d6936f2 (diff) | |
| download | vcpkg-f7e746dcae436ba29ed89c42b4dc0f788189a8de.tar.gz vcpkg-f7e746dcae436ba29ed89c42b4dc0f788189a8de.zip | |
[qt5] Fix linux dynamic build (#15005)
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/cmake/vcpkg_build_qmake.cmake | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/scripts/cmake/vcpkg_build_qmake.cmake b/scripts/cmake/vcpkg_build_qmake.cmake index fd00f590f..6b85234c8 100644 --- a/scripts/cmake/vcpkg_build_qmake.cmake +++ b/scripts/cmake/vcpkg_build_qmake.cmake @@ -69,15 +69,38 @@ function(vcpkg_build_qmake) unset(_buildname) foreach(_buildname ${BUILDTYPES}) - set(_BUILD_PREFIX "${_path_suffix_${_buildname}}") - vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}${_BUILD_PREFIX}/bin") - vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}${_BUILD_PREFIX}/lib") + set(_installed_prefix_ "${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}") + set(_installed_libpath_ "${_installed_prefix_}/lib/${VCPKG_HOST_PATH_SEPARATOR}${_installed_prefix_}/lib/manual-link/") + + vcpkg_add_to_path(PREPEND "${_installed_prefix_}/bin") + vcpkg_add_to_path(PREPEND "${_installed_prefix_}/lib") + + # We set LD_LIBRARY_PATH ENV variable to allow executing Qt tools (rcc,...) even with dynamic linking + if(CMAKE_HOST_UNIX) + if(DEFINED ENV{LD_LIBRARY_PATH}) + set(_ld_library_path_defined_ TRUE) + set(_ld_library_path_backup_ $ENV{LD_LIBRARY_PATH}) + set(ENV{LD_LIBRARY_PATH} "${_installed_libpath_}${VCPKG_HOST_PATH_SEPARATOR}${_ld_library_path_backup_}") + else() + set(_ld_library_path_defined_ FALSE) + set(ENV{LD_LIBRARY_PATH} "${_installed_libpath_}") + endif() + endif() + list(APPEND _csc_${_buildname}_TARGETS ${_csc_TARGETS}) if(NOT _csc_SKIP_MAKEFILES) run_jom(qmake_all makefiles ${_short_name_${_buildname}}) endif() run_jom("${_csc_${_buildname}_TARGETS}" ${_csc_BUILD_LOGNAME} ${_short_name_${_buildname}}) - unset(_BUILD_PREFIX) + + # Restore backup + if(CMAKE_HOST_UNIX) + if(_ld_library_path_defined_) + set(ENV{LD_LIBRARY_PATH} "${_ld_library_path_backup_}") + else() + unset(ENV{LD_LIBRARY_PATH}) + endif() + endif() endforeach() # Restore the original value of ENV{PATH} |
