]> git.mxchange.org Git - simgear.git/commitdiff
VS215 tweaks, warning fixes
authorJames Turner <zakalawe@mac.com>
Thu, 9 Jun 2016 19:37:54 +0000 (20:37 +0100)
committerRoland Haeder <roland@mxchange.org>
Sat, 13 Aug 2016 08:21:16 +0000 (10:21 +0200)
CMakeLists.txt
simgear/compiler.h
simgear/package/untar.cxx
simgear/package/untar.hxx

index f586eb24f9fda824446a892373a26de36848f20a..603c830f87e2669bf76fcb80f65a38ebecabf035 100644 (file)
@@ -364,13 +364,11 @@ if(WIN32)
     endif()
 
     if(MSVC)
-        # turn off various warnings
-        # foreach(warning 4244 4251 4267 4275 4290 4786 4305 4996)
-        #     SET(WARNING_FLAGS "${WARNING_FLAGS} /wd${warning}")
-        # endforeach(warning)
+        set(MSVC_FLAGS "-DWIN32 -DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D__CRT_NONSTDC_NO_WARNINGS /MP")
 
-        set(MSVC_FLAGS "-DWIN32 -DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D__CRT_NONSTDC_NO_WARNINGS /wd4996 /wd4250")
         if (${MSVC_VERSION} GREATER 1599)
+          # needed to avoid link errors on multiply-defined standard C++
+          # symbols. Suspect this may be an OSG-DB export bug
             set( MSVC_LD_FLAGS "/FORCE:MULTIPLE" )
         endif (${MSVC_VERSION} GREATER 1599)
 
index f6bdc37c38fae51e1fc71e8a38436123122b8156..ab275061b660e431ec712b73a9a95f8b26708e75 100644 (file)
 // Microsoft compilers.
 //
 #ifdef _MSC_VER
-#  define bcopy(from, to, n) memcpy(to, from, n)
+#  define strcasecmp stricmp
 
 #  if _MSC_VER >= 1200 // msvc++ 6.0 up to MSVC2013
 #    if _MSC_VER < 1900
+#      define bcopy(from, to, n) memcpy(to, from, n)
 #      define snprintf _snprintf
 #      define strdup _strdup
+#      define copysign _copysign
 #    endif
 #    if _MSC_VER < 1800
 #      define isnan _isnan
 #    if _MSC_VER < 1500
 #      define vsnprintf _vsnprintf
 #    endif
-#    define copysign _copysign
-#    define strcasecmp stricmp
-
-#    undef min
-#    undef max
 
 #    pragma warning(disable: 4786) // identifier was truncated to '255' characters
 #    pragma warning(disable: 4244) // conversion from double to float
-#    pragma warning(disable: 4305) // truncation from larer type to smaller
+#    pragma warning(disable: 4305) // truncation from larger type to smaller
+#    pragma warning(disable: 4267) // conversion from size_t to int / 32-bit type
+#    pragma warning(disable: 4996) // don't require _ prefix for standard library functions
+#    pragma warning(disable: 4800) // don't warn about int -> bool performance
 
 #  else
 #    error What version of MSVC++ is this?
 #  endif
-
-#    define SG_COMPILER_STR "Microsoft Visual C++ version " SG_STRINGIZE(_MSC_VER)
+#  define SG_COMPILER_STR "Microsoft Visual C++ version " SG_STRINGIZE(_MSC_VER)
 
 #endif // _MSC_VER
 
index 7698029dbd539bf383cf2edfcf388b9743fd170b..14ba27ce7febc13885c84cec15f2b56a092ad64e 100644 (file)
@@ -278,6 +278,10 @@ TarExtractor::TarExtractor(const SGPath& rootPath) :
     d->zlibStream.next_out = d->zlibOutput;
 }
 
+TarExtractor::~TarExtractor()
+{
+}
+
 void TarExtractor::extractBytes(const char* bytes, size_t count)
 {
     if (d->state >= TarExtractorPrivate::ERROR_STATE) {
index 76cc1f9dacc7792b8d596ad86d75e4734381d36d..0b653a670db6f93cfeb3c83782c39e1ed9afd443 100644 (file)
@@ -34,6 +34,7 @@ class TarExtractor
 {
 public:
     TarExtractor(const SGPath& rootPath);
+       ~TarExtractor();
 
     void extractBytes(const char* bytes, size_t count);