summaryrefslogtreecommitdiff
path: root/cmake/InstallMacros.cmake
diff options
context:
space:
mode:
authorAlan Antonuk <aega@med.umich.edu>2012-11-29 11:03:15 -0500
committerAlan Antonuk <aega@med.umich.edu>2012-11-29 11:03:15 -0500
commite9eb31fa14de6f04099d7da871deb1786dfd655c (patch)
tree04c67f5b9ce9cd5f1fa3f3af354965a699449c9f /cmake/InstallMacros.cmake
parent596c6662f31b551761496250306f145fbf9d5fd5 (diff)
downloadrabbitmq-c-github-ask-e9eb31fa14de6f04099d7da871deb1786dfd655c.tar.gz
Install .pdb files where available
Diffstat (limited to 'cmake/InstallMacros.cmake')
-rw-r--r--cmake/InstallMacros.cmake45
1 files changed, 45 insertions, 0 deletions
diff --git a/cmake/InstallMacros.cmake b/cmake/InstallMacros.cmake
new file mode 100644
index 0000000..30cc47a
--- /dev/null
+++ b/cmake/InstallMacros.cmake
@@ -0,0 +1,45 @@
+#
+# This module install PDB files.
+#
+# Based on users posts:
+# http://www.cmake.org/pipermail/cmake/2007-October/016924.html
+#
+# Copyright (c) 2006-2011 Mathieu Malaterre <mathieu.malaterre@gmail.com>
+#
+# Redistribution and use is allowed according to the terms of the New
+# BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+#
+
+macro (install_pdb library)
+ if (MSVC)
+ if(CMAKE_CONFIGURATION_TYPES)
+ # Visual Studio
+ # The following does not work with LOCATION keyword. See:
+ # http://www.cmake.org/pipermail/cmake/2011-February/042579.html
+ foreach(cfg ${CMAKE_CONFIGURATION_TYPES})
+ get_target_property(library_dll ${library} LOCATION_${cfg})
+ string(REPLACE .dll .pdb library_pdb ${library_dll})
+ string(TOLOWER ${cfg} lcfg)
+ if(lcfg STREQUAL "debug" OR lcfg STREQUAL "relwithdebinfo")
+ install (FILES ${library_pdb}
+ DESTINATION bin
+ CONFIGURATIONS ${cfg}
+ )
+ endif()
+ endforeach()
+ else()
+ # nmake
+ # Same as above we need the explicit location_<config> variable to account for
+ # the value of CMAKE_DEBUG_POSTFIX
+ get_target_property(library_dll ${library} LOCATION_${CMAKE_BUILD_TYPE})
+ string(REPLACE .dll .pdb library_pdb ${library_dll})
+ string(TOLOWER ${CMAKE_BUILD_TYPE} lcfg)
+ if(lcfg STREQUAL "debug" OR lcfg STREQUAL "relwithdebinfo")
+ install (FILES ${library_pdb}
+ DESTINATION bin
+ )
+ endif()
+ endif()
+ endif ()
+endmacro ()