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

Reply via email to