]> git.mxchange.org Git - flightgear.git/commitdiff
Optionally use fixed osgDB build for linking
authorJames Turner <zakalawe@mac.com>
Tue, 16 Aug 2016 11:59:52 +0000 (12:59 +0100)
committerRoland Haeder <roland@mxchange.org>
Thu, 22 Sep 2016 21:27:49 +0000 (23:27 +0200)
This allows us to drop the /FORCE:MULTIPLE work-around.

CMakeLists.txt

index 673976b5d76754465bf17ecb8dbe61c5ead51f12..7d482a87c9aa626a7f1605b915678b523abe73e5 100644 (file)
@@ -197,6 +197,10 @@ option(ENABLE_FGCOM      "Set to ON to build the FGCom application (default)" ON
 option(ENABLE_FLITE      "Set to ON to build the Flite text-to-speech module" ON)
 option(ENABLE_QT         "Set to ON to build the internal Qt launcher" ON)
 
+# when building an OSG with commit 15ec7e2ae7a8b983ecc44e1ce7363a9a9fa7da95
+# applied, we can use better link options
+option(OSG_FSTREAM_EXPORT_FIXED "Set to ON if the osgDB fstream export patch is applied" OFF)
+
 if(LOGGING)
     # nothing
 else()
@@ -361,9 +365,12 @@ if(WIN32)
 
     if(MSVC)
         set(MSVC_FLAGS "-DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D__CRT_NONSTDC_NO_WARNINGS /MP")
-        if (${MSVC_VERSION} GREATER 1599)
-            set( MSVC_LD_FLAGS "/FORCE:MULTIPLE" )
-        endif (${MSVC_VERSION} GREATER 1599)
+        if (NOT OSG_FSTREAM_EXPORT_FIXED AND ${MSVC_VERSION} GREATER 1599)
+          message(STATUS "For better linking performance, use OSG with fixed fstream header")
+          # needed to avoid link errors on multiply-defined standard C++
+          # symbols. This issue was fixed in OSG commit 15ec7e2ae7a8b983ecc44e1ce7363a9a9fa7da95
+          set( MSVC_LD_FLAGS "/FORCE:MULTIPLE" )
+        endif ()
 
         if (${MSVC_VERSION} GREATER 1899)
             # needed for debug builds with VS2015