changeset 21:47db82b53c62

build with visual studio 2008
author jodogne
date Wed, 01 Apr 2015 14:41:11 +0200
parents 01eb9c17d19a
children 27ca1758df5e
files CMakeLists.txt NEWS Resources/CMake/PostgreSQLConfiguration.cmake
diffstat 3 files changed, 27 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Wed Mar 11 14:24:35 2015 +0100
+++ b/CMakeLists.txt	Wed Apr 01 14:41:11 2015 +0200
@@ -58,6 +58,27 @@
   SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/Resources/VersionScript.map -Wl,--no-undefined")
 endif()
 
+if (MSVC)
+  # Use static runtime under Visual Studio
+  # http://www.cmake.org/Wiki/CMake_FAQ#Dynamic_Replace
+  # http://stackoverflow.com/a/6510446
+  foreach(flag_var
+    CMAKE_C_FLAGS_DEBUG
+    CMAKE_CXX_FLAGS_DEBUG
+    CMAKE_C_FLAGS_RELEASE 
+    CMAKE_CXX_FLAGS_RELEASE
+    CMAKE_C_FLAGS_MINSIZEREL 
+    CMAKE_CXX_FLAGS_MINSIZEREL 
+    CMAKE_C_FLAGS_RELWITHDEBINFO 
+    CMAKE_CXX_FLAGS_RELWITHDEBINFO) 
+    string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
+    string(REGEX REPLACE "/MDd" "/MTd" ${flag_var} "${${flag_var}}")
+  endforeach(flag_var)
+
+  add_definitions(
+    -D_CRT_SECURE_NO_WARNINGS=1
+    -D_CRT_NONSTDC_NO_DEPRECATE=1)
+endif()
 
 include(CheckIncludeFiles)
 include(CheckIncludeFileCXX)
--- a/NEWS	Wed Mar 11 14:24:35 2015 +0100
+++ b/NEWS	Wed Apr 01 14:41:11 2015 +0200
@@ -1,6 +1,8 @@
 Pending changes in the mainline
 ===============================
 
+* Support for Visual Studio 2008
+
 
 Release 1.0 (2015/02/27)
 ========================
--- a/Resources/CMake/PostgreSQLConfiguration.cmake	Wed Mar 11 14:24:35 2015 +0100
+++ b/Resources/CMake/PostgreSQLConfiguration.cmake	Wed Apr 01 14:41:11 2015 +0200
@@ -153,10 +153,13 @@
       ${PQ_SOURCES_DIR}/src/port/pgsleep.c
       ${PQ_SOURCES_DIR}/src/port/snprintf.c
       ${PQ_SOURCES_DIR}/src/port/system.c 
-      ${PQ_SOURCES_DIR}/src/port/win32error.c
       ${PQ_SOURCES_DIR}/src/port/win32setlocale.c
       ${PQ_SOURCES_DIR}/src/port/getaddrinfo.c
       )
+      
+    if (${CMAKE_COMPILER_IS_GNUCXX})
+      LIST(APPEND LIBPQ_SOURCES ${PQ_SOURCES_DIR}/src/port/win32error.c)
+    endif()
   endif()
 
   if (${CMAKE_COMPILER_IS_GNUCXX})