summaryrefslogtreecommitdiff
path: root/functions.cmake
diff options
context:
space:
mode:
authorJan Vorlicek <janvorli@microsoft.com>2016-11-29 19:09:35 +0100
committerGitHub <noreply@github.com>2016-11-29 19:09:35 +0100
commit74816870ce9ff5ec41d30455a7dcc3b5d327bf45 (patch)
treefc148a063f34c8bfc70e15d24a5e4abba272f78d /functions.cmake
parente67851210d1c03d730a3bc97a87e8a6713bbf772 (diff)
downloadcoreclr-74816870ce9ff5ec41d30455a7dcc3b5d327bf45.tar.gz
coreclr-74816870ce9ff5ec41d30455a7dcc3b5d327bf45.tar.bz2
coreclr-74816870ce9ff5ec41d30455a7dcc3b5d327bf45.zip
Fix shared library dependencies verification on some platforms (#8349)
The existing way of verifying shared library dependencies, used for System.Globalization.Native.so, doesn't work on platforms that don't have ldd or where ldd doesn't support the `-r` option. This change makes the check happen on non-Alpine Linux only for now. It also refactors the way the check is performed. Instead of doing it post build in the build.sh, it is now performed as a postbuild phase of the System.Globalization.Native target and it is also generalized so that we can easily add such verification to other build targets. The new verify-so.sh script is also used in corefx.
Diffstat (limited to 'functions.cmake')
-rw-r--r--functions.cmake16
1 files changed, 16 insertions, 0 deletions
diff --git a/functions.cmake b/functions.cmake
index f8a2eeae04..bac20e8bc6 100644
--- a/functions.cmake
+++ b/functions.cmake
@@ -216,3 +216,19 @@ function(_install)
install(${ARGV})
endif()
endfunction()
+
+function(verify_dependencies targetName errorMessage)
+ # We don't need to verify dependencies on OSX, since missing dependencies
+ # result in link error over there.
+ if (NOT CLR_CMAKE_PLATFORM_DARWIN)
+ add_custom_command(
+ TARGET ${targetName}
+ POST_BUILD
+ VERBATIM
+ COMMAND ${CMAKE_SOURCE_DIR}/verify-so.sh
+ $<TARGET_FILE:${targetName}>
+ ${errorMessage}
+ COMMENT "Verifying ${targetName} dependencies"
+ )
+ endif()
+endfunction()