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 Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users