diff options
Diffstat (limited to 'cmake/QtBuild.cmake')
-rw-r--r-- | cmake/QtBuild.cmake | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index e20985c2a3..f957d87332 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -3325,12 +3325,11 @@ function(qt_generate_prl_file target install_dir) unset(rcc_objects) endif() - unset(prl_libs) - qt_collect_libs(${target} prl_libs) - unset(prl_config) + set(is_static FALSE) if(target_type STREQUAL "STATIC_LIBRARY") list(APPEND prl_config static) + set(is_static TRUE) elseif(target_type STREQUAL "SHARED_LIBRARY") list(APPEND prl_config shared) endif() @@ -3387,16 +3386,25 @@ function(qt_generate_prl_file target install_dir) # Generate the prl content and its final file name into configuration specific files # whose names we know, and can be used in add_custom_command. - file(GENERATE - OUTPUT "${prl_step1_path}" - CONTENT + set(prl_step1_content "RCC_OBJECTS = ${rcc_objects} QMAKE_PRL_BUILD_DIR = ${CMAKE_CURRENT_BINARY_DIR} QMAKE_PRL_TARGET = $<TARGET_FILE_NAME:${target}> QMAKE_PRL_CONFIG = ${prl_config} QMAKE_PRL_VERSION = ${PROJECT_VERSION} -QMAKE_PRL_LIBS_FOR_CMAKE = ${prl_libs} ") + if(NOT is_static AND WIN32) + # Do nothing. Prl files for shared libraries on Windows shouldn't have the libs listed, + # as per qt_build_config.prf and the conditional CONFIG+=explicitlib assignment. + else() + set(prl_libs "") + qt_collect_libs(${target} prl_libs) + string(APPEND prl_step1_content "QMAKE_PRL_LIBS_FOR_CMAKE = ${prl_libs}\n") + endif() + + file(GENERATE + OUTPUT "${prl_step1_path}" + CONTENT "${prl_step1_content}") file(GENERATE OUTPUT "${prl_meta_info_path}" CONTENT |