Hi,
attached you can find the size numbers for the release dlls and pdb
files that I have extracted from the opensg master build with and
without the patch of OSGSetupCompiler.cmake. So we would be gaining
around 22.5% of size reduction for the dlls.
Best,
Johannes
Microsoft Visual Studio Professional 2013
Version 12.0.40629.00 Update 5
OpenSG- OpenSG-patched
master OPT:REF + OPT:ICF diff
-----------------------------------------------------------------------------
OSGBase.dll 10558976 7609856 27.9%
OSGCluster.dll 1469440 1104896 24.8%
OSGContribBackgroundLoader.dll 139776 96256 31.1%
OSGContribComputeBase.dll 1637888 1273344 22.3%
OSGContribCSM.dll 4941824 3862528 21.8%
OSGContribCSMSimplePlugin.dll 23040 17920 22.2%
OSGContribDataSolid.dll 2893312 2193408 24.2%
OSGContribGUI.dll 720384 565248 21.5%
OSGContribPLY.dll 119296 60928 48.9%
OSGContribRhino3D.dll 138240 98816 28.5%
OSGContribTrapezoidalShadowMaps.dll 352768 279552 20.8%
OSGContribVTK.dll 719360 546816 24.0%
OSGContribWebInterface.dll 99840 75264 24.6%
OSGDrawable.dll 10978304 8403456 23.5%
OSGDynamics.dll 8501760 6726656 20.9%
OSGEffectGroups.dll 5417984 4353536 19.6%
OSGFileIO.dll 3940352 2896384 26.5%
OSGGroup.dll 8133120 6411776 21.2%
OSGImageFileIO.dll 401920 321536 20.0%
OSGState.dll 5288448 4211712 20.4%
OSGSystem.dll 25709056 20341248 20.9%
OSGText.dll 318464 204800 35.7%
OSGUtil.dll 1854976 1363456 26.5%
OSGWindow.dll 6321664 4988928 21.1%
OSGWindowGLUT.dll 331776 263168 20.7%
OSGWindowWIN32.dll 528896 402432 23.9%
OSGBase.pdb 85987328 52817920 38.6%
OSGCluster.pdb 16076800 11841536 26.3%
OSGContribBackgroundLoader.pdb 4567040 4042752 11.5%
OSGContribComputeBase.pdb 16248832 12365824 23.9%
OSGContribCSM.pdb 38785024 28561408 26.4%
OSGContribCSMSimplePlugin.pdb 2928640 2879488 1.7%
OSGContribDataSolid.pdb 26210304 18903040 27.9%
OSGContribGUI.pdb 9080832 7548928 16.9%
OSGContribPLY.pdb 4583424 4067328 11.3%
OSGContribRhino3D.pdb 5910528 5361664 9.3%
OSGContribTrapezoidalShadowMaps.pdb 6877184 6025216 12.4%
OSGContribVTK.pdb 9662464 7696384 20.3%
OSGContribWebInterface.pdb 3788800 3084288 18.6%
OSGDrawable.pdb 75993088 51105792 32.7%
OSGDynamics.pdb 59109376 42078208 28.8%
OSGEffectGroups.pdb 38301696 27832320 27.3%
OSGFileIO.pdb 44527616 29356032 34.1%
OSGGroup.pdb 57700352 41463808 28.1%
OSGImageFileIO.pdb 6565888 5533696 15.7%
OSGState.pdb 35483648 25890816 27.0%
OSGSystem.pdb 167505920 116101120 30.7%
OSGText.pdb 7852032 5820416 25.9%
OSGUtil.pdb 23220224 16035840 30.9%
OSGWindow.pdb 51982336 37908480 27.1%
OSGWindowGLUT.pdb 5296128 4583424 13.5%
OSGWindowWIN32.pdb 6467584 5132288 20.6%
diff -rupN opensg_org/CMake/OSGSetupCompiler.cmake
opensg/CMake/OSGSetupCompiler.cmake
--- opensg_org/CMake/OSGSetupCompiler.cmake 2017-01-16 11:34:52.635334200
+0100
+++ opensg/CMake/OSGSetupCompiler.cmake 2017-01-27 10:28:53.746851700 +0100
@@ -172,16 +172,24 @@ IF(MSVC)
SET(OSG_ADD_MSVC_STD_LIBS_RELEASE "vcruntime.lib ucrt.lib")
ENDIF()
+ STRING(REPLACE "/INCREMENTAL:YES" "" CMAKE_SHARED_LINKER_FLAGS_DEBUG
${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
+ STRING(REPLACE "/INCREMENTAL" "" CMAKE_SHARED_LINKER_FLAGS_DEBUG
${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
+ SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/INCREMENTAL:NO
${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")
+
SET(CMAKE_SHARED_LINKER_FLAGS_RELEASENOOPT
"${CMAKE_SHARED_LINKER_FLAGS_DEBUG} msvcprt.lib msvcrt.lib
${OSG_ADD_MSVC_STD_LIBS_RELEASE}"
CACHE STRING "OpenSG defaults" FORCE )
+ SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG
+ "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} msvcprtd.lib msvcrtd.lib
${OSG_ADD_MSVC_STD_LIBS_DEBUG}"
+ CACHE STRING "OpenSG defaults" FORCE )
+
SET(CMAKE_SHARED_LINKER_FLAGS_DEBUGOPT
- "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /debug msvcprtd.lib msvcrtd.lib
${OSG_ADD_MSVC_STD_LIBS_DEBUG}"
+ "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /debug /OPT:REF /OPT:ICF
msvcprtd.lib msvcrtd.lib ${OSG_ADD_MSVC_STD_LIBS_DEBUG}"
CACHE STRING "OpenSG defaults" FORCE )
SET(CMAKE_SHARED_LINKER_FLAGS_RELEASE
- "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /debug msvcprt.lib msvcrt.lib
${OSG_ADD_MSVC_STD_LIBS_RELEASE}"
+ "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /debug /OPT:REF /OPT:ICF
msvcprt.lib msvcrt.lib ${OSG_ADD_MSVC_STD_LIBS_RELEASE}"
CACHE STRING "OpenSG defaults" FORCE )
SET(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
@@ -192,14 +200,13 @@ IF(MSVC)
"${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} msvcprt.lib msvcrt.lib
${OSG_ADD_MSVC_STD_LIBS_RELEASE}"
CACHE INTERNAL "OpenSG defaults" FORCE )
- STRING(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags
${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
- SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/INCREMENTAL:NO ${replacementFlags}" )
- SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG
- "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} msvcprtd.lib msvcrtd.lib
${OSG_ADD_MSVC_STD_LIBS_DEBUG}"
- CACHE STRING "OpenSG defaults" FORCE )
+ # Exe Linker Flags
+ STRING(REPLACE "/INCREMENTAL:YES" "" CMAKE_EXE_LINKER_FLAGS_DEBUG
${CMAKE_EXE_LINKER_FLAGS_DEBUG})
+ STRING(REPLACE "/INCREMENTAL" "" CMAKE_EXE_LINKER_FLAGS_DEBUG
${CMAKE_EXE_LINKER_FLAGS_DEBUG})
+ SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "/INCREMENTAL:NO
${CMAKE_EXE_LINKER_FLAGS_DEBUG}")
SET(CMAKE_EXE_LINKER_FLAGS_RELEASENOOPT
"${CMAKE_EXE_LINKER_FLAGS_DEBUG} msvcprt.lib msvcrt.lib
${OSG_ADD_MSVC_STD_LIBS_RELEASE}"
@@ -210,11 +217,11 @@ IF(MSVC)
CACHE STRING "OpenSG defaults" FORCE )
SET(CMAKE_EXE_LINKER_FLAGS_DEBUGOPT
- "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /debug msvcprtd.lib msvcrtd.lib
${OSG_ADD_MSVC_STD_LIBS_DEBUG}"
+ "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /debug /OPT:REF /OPT:ICF
msvcprtd.lib msvcrtd.lib ${OSG_ADD_MSVC_STD_LIBS_DEBUG}"
CACHE STRING "OpenSG defaults" FORCE )
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE
- "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /debug msvcprt.lib msvcrt.lib
${OSG_ADD_MSVC_STD_LIBS_RELEASE}"
+ "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /debug /OPT:REF /OPT:ICF
msvcprt.lib msvcrt.lib ${OSG_ADD_MSVC_STD_LIBS_RELEASE}"
CACHE STRING "OpenSG defaults" FORCE )
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users