diff --git a/doc/contributions.txt b/doc/contributions.txt index 494118e18b..873e93bce3 100755 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -327,6 +327,7 @@ Cinder Roxley STORM-2036 STORM-2037 STORM-2053 + STORM-2105 STORM-2113 Clara Young Coaldust Numbers diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index c0d5767aa1..a8351ef995 100755 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -106,6 +106,7 @@ set(cmake_SOURCE_FILES ViewerMiscLibs.cmake VisualLeakDetector.cmake ## WebKitLibPlugin.cmake + WinManifest.cmake XmlRpcEpi.cmake ZLIB.cmake ) diff --git a/indra/cmake/WinManifest.cmake b/indra/cmake/WinManifest.cmake new file mode 100644 index 0000000000..c94caab9a2 --- /dev/null +++ b/indra/cmake/WinManifest.cmake @@ -0,0 +1,17 @@ +# - Embeds a specific manifest file in a Windows binary +# Defines the following: +# EMBED_MANIFEST - embed manifest in a windows binary with mt +# Parameters - _target is the target file, type - 1 for EXE, 2 for DLL + + MACRO(EMBED_MANIFEST _target type) + ADD_CUSTOM_COMMAND( + TARGET ${_target} + POST_BUILD + COMMAND "mt.exe" + ARGS + -manifest \"${CMAKE_SOURCE_DIR}\\tools\\manifests\\compatibility.manifest\" + -inputresource:\"$\"\;\#${type} + -outputresource:\"$\"\;\#${type} + COMMENT "Adding compatibility manifest to ${_target}" + ) + ENDMACRO(EMBED_MANIFEST _target) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 86bf6d6c64..d03075fc9e 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -52,6 +52,7 @@ include(UI) include(UnixInstall) include(ViewerMiscLibs) include(VisualLeakDetector) +include(WinManifest) include(URIPARSER) include(Growl) include(ColladaDom) @@ -2034,6 +2035,8 @@ if (WINDOWS) ) endif(USE_PRECOMPILED_HEADERS) + EMBED_MANIFEST(${VIEWER_BINARY_NAME} 1) + # If adding a file to viewer_manifest.py in the WindowsManifest.construct() method, be sure to add the dependency # here. # *NOTE:Mani - This is a crappy hack to have important dependencies for the viewer_manifest copy action diff --git a/indra/tools/manifests/compatibility.manifest b/indra/tools/manifests/compatibility.manifest new file mode 100644 index 0000000000..aa2e8fe547 --- /dev/null +++ b/indra/tools/manifests/compatibility.manifest @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/indra/win_crash_logger/CMakeLists.txt b/indra/win_crash_logger/CMakeLists.txt index 7a1a6ce95c..e534f8c437 100755 --- a/indra/win_crash_logger/CMakeLists.txt +++ b/indra/win_crash_logger/CMakeLists.txt @@ -14,6 +14,7 @@ include(LLXML) include(Linking) include(LLSharedLibs) include(GoogleBreakpad) +include(WinManifest) include_directories( ${LLCOMMON_INCLUDE_DIRS} @@ -99,6 +100,8 @@ if (WINDOWS) LINK_FLAGS "/NODEFAULTLIB:LIBCMT" LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\"" ) + + EMBED_MANIFEST(windows-crash-logger 1) endif (WINDOWS) ll_deploy_sharedlibs_command(windows-crash-logger)