Fix tst_qlibrary after rebuild
tst_qlibrary depends on a library (targets mylib and mylib2) to be built. They create a library with the same name, in two versions. This is done in order to test versioned library loading. However, those two libraries were fighting over the creation of "libmylib.so". In a fresh build, mylib2 wins, as intended. But after a rebuild, mylib won, which led to failing unit tests. This patch changes the situation. With this change, mylib no longer tries to create "libmylib.so". Thus no fighting and no problem. Change-Id: Id89baa5503c9f078a8737ff0b8616edf09044f72 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 1dff26dd9539feb40767b7761c5339085ad74dbf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
d10e7b66c3
commit
be6c48e2da
@ -7,7 +7,7 @@
|
|||||||
qt_internal_add_cmake_library(mylib
|
qt_internal_add_cmake_library(mylib
|
||||||
SHARED
|
SHARED
|
||||||
INSTALL_DIRECTORY "${INSTALL_TESTSDIR}/tst_qlibrary"
|
INSTALL_DIRECTORY "${INSTALL_TESTSDIR}/tst_qlibrary"
|
||||||
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../"
|
#OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../" # special case
|
||||||
SOURCES
|
SOURCES
|
||||||
mylib.c
|
mylib.c
|
||||||
PUBLIC_LIBRARIES
|
PUBLIC_LIBRARIES
|
||||||
@ -27,6 +27,35 @@ if(WIN32)
|
|||||||
set_property(TARGET mylib PROPERTY PREFIX "")
|
set_property(TARGET mylib PROPERTY PREFIX "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
if (MACOS)
|
||||||
|
add_custom_command(TARGET mylib POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
$<TARGET_FILE:mylib>
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/../"
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/*dylib"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/../"
|
||||||
|
)
|
||||||
|
elseif (UNIX)
|
||||||
|
add_custom_command(TARGET mylib POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
$<TARGET_FILE:mylib>
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/../libmylib.so.1.0.0"
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/../libmylib.so.1.0.0"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/../libmylib.so.1"
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/../libmylib.so.1.0.0"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/../libmylib.so1"
|
||||||
|
)
|
||||||
|
else() #Win32
|
||||||
|
add_custom_command(TARGET mylib POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
$<TARGET_FILE:mylib>
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/../mylib.dll"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
# special case end
|
# special case end
|
||||||
|
|
||||||
#### Keys ignored in scope 1:.:.:lib.pro:<TRUE>:
|
#### Keys ignored in scope 1:.:.:lib.pro:<TRUE>:
|
||||||
|
@ -40,7 +40,6 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
add_dependencies(mylib2 mylib)
|
|
||||||
add_custom_command(TARGET mylib2 POST_BUILD
|
add_custom_command(TARGET mylib2 POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
$<TARGET_FILE:mylib2>
|
$<TARGET_FILE:mylib2>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user