[Cmake-commits] CMake branch, next, updated. v3.7.1-2071-g74a0318
Brad King
brad.king at kitware.com
Wed Jan 11 10:50:37 EST 2017
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 74a03183ffc0982cd948bf76ce84f7891b585d1e (commit)
via a7c5d5fb0e8d096dfc9b6e82e93f1e0d6225fe1f (commit)
from c16ab966d519e8d8cb7bb073cc9b3e8d507b5cca (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=74a03183ffc0982cd948bf76ce84f7891b585d1e
commit 74a03183ffc0982cd948bf76ce84f7891b585d1e
Merge: c16ab96 a7c5d5f
Author: Brad King <brad.king at kitware.com>
AuthorDate: Wed Jan 11 10:50:36 2017 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Jan 11 10:50:36 2017 -0500
Merge topic 'get_prerequisites_delayload' into next
a7c5d5fb GetPrerequisites: Exclude delay load dependencies on Windows
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a7c5d5fb0e8d096dfc9b6e82e93f1e0d6225fe1f
commit a7c5d5fb0e8d096dfc9b6e82e93f1e0d6225fe1f
Author: Pascal Thomet <pthomet at gmail.com>
AuthorDate: Thu Dec 22 12:28:26 2016 +0100
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jan 11 10:48:36 2017 -0500
GetPrerequisites: Exclude delay load dependencies on Windows
With some Windows toolchains we use `objdump` which does not mention
delay load dependencies in its output. Therefore, to get consistent
behavior we should always ignore them.
Use the `dumpbin` message "Image has the following delay load
dependencies" that precedes the delay load dependencies to recognize and
skip them. Fortunately, this message is not translated to the current
locale (at least on "Windows 7 French", "Windows 10 French" and "Windows
Server 2008 R2 French").
Fixes: #16241
diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake
index 72775ce..d0cd5b9 100644
--- a/Modules/GetPrerequisites.cmake
+++ b/Modules/GetPrerequisites.cmake
@@ -810,6 +810,20 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa
OUTPUT_VARIABLE gp_cmd_ov
ERROR_VARIABLE gp_ev
)
+
+ if(gp_tool STREQUAL "dumpbin")
+ # Exclude delay load dependencies under windows (they are listed in dumpbin output after the message below)
+ string(FIND "${gp_cmd_ov}" "Image has the following delay load dependencies" gp_delayload_pos)
+ if (${gp_delayload_pos} GREATER -1)
+ string(SUBSTRING "${gp_cmd_ov}" 0 ${gp_delayload_pos} gp_cmd_ov_no_delayload_deps)
+ string(SUBSTRING "${gp_cmd_ov}" ${gp_delayload_pos} -1 gp_cmd_ov_delayload_deps)
+ if (verbose)
+ message(STATUS "GetPrequisites(${target}) : ignoring the following delay load dependencies :\n ${gp_cmd_ov_delayload_deps}")
+ endif()
+ set(gp_cmd_ov ${gp_cmd_ov_no_delayload_deps})
+ endif()
+ endif()
+
if(NOT gp_rv STREQUAL "0")
if(gp_tool STREQUAL "dumpbin")
# dumpbin error messages seem to go to stdout
-----------------------------------------------------------------------
Summary of changes:
Modules/GetPrerequisites.cmake | 14 ++++++++++++++
1 file changed, 14 insertions(+)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list