changeset 113:91a2274660c4

fix os x build
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 14 Nov 2016 15:43:48 +0100
parents e7bd83ba0e0c
children 194404789b4a
files Resources/CMake/PostgreSQLConfiguration.cmake
diffstat 1 files changed, 37 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/Resources/CMake/PostgreSQLConfiguration.cmake	Thu Nov 10 09:57:50 2016 +0100
+++ b/Resources/CMake/PostgreSQLConfiguration.cmake	Mon Nov 14 15:43:48 2016 +0100
@@ -29,19 +29,19 @@
     "http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/postgresql-9.6.1.tar.gz"
     "${PQ_SOURCES_DIR}")
 
-  if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+  if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
     set(PQ_CONFIG_H ${PQ_SOURCES_DIR}/src/include/pg_config.h.win32)
 
     if (${MSVC})
       configure_file(
         ${PQ_SOURCES_DIR}/src/include/pg_config.h.win32
         ${AUTOGENERATED_DIR}/pg_config.h
-        COPY_ONLY)
+        COPYONLY)
 
       configure_file(
         ${PQ_SOURCES_DIR}/src/include/pg_config_ext.h.win32
         ${AUTOGENERATED_DIR}/pg_config_ext.h
-        COPY_ONLY)
+        COPYONLY)
 
     else()
       if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
@@ -58,9 +58,9 @@
     configure_file(
       ${PQ_SOURCES_DIR}/src/include/port/win32.h
       ${AUTOGENERATED_DIR}/pg_config_os.h
-      COPY_ONLY)
+      COPYONLY)
 
-  else()
+  elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
 
     if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
@@ -78,20 +78,41 @@
     configure_file(
       ${PQ_SOURCES_DIR}/src/include/port/linux.h
       ${AUTOGENERATED_DIR}/pg_config_os.h
-      COPY_ONLY)
+      COPYONLY)
+
+  elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
+    if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+      set(PQ_CONFIG_H ${CMAKE_SOURCE_DIR}/Resources/Platforms/pg_config-darwin64.h)
+    else()
+      message(FATAL_ERROR "Support your platform here")
+    endif()
+
+    add_definitions(
+      -D_GNU_SOURCE
+      -D_THREAD_SAFE
+      -D_POSIX_PTHREAD_SEMANTICS
+      )
+
+    configure_file(
+      ${PQ_SOURCES_DIR}/src/include/port/darwin.h
+      ${AUTOGENERATED_DIR}/pg_config_os.h
+      COPYONLY)
+
+  else()
+    message(FATAL_ERROR "Support your platform here")
   endif()
 
 
   configure_file(
     ${PQ_CONFIG_H}
     ${AUTOGENERATED_DIR}/pg_config.h
-    COPY_ONLY
+    COPYONLY
     )
 
   configure_file(
     ${CMAKE_SOURCE_DIR}/Resources/Platforms/pg_config_ext.h
     ${AUTOGENERATED_DIR}/pg_config_ext.h
-    COPY_ONLY
+    COPYONLY
     )
 
   file(WRITE
@@ -136,10 +157,15 @@
     ${PQ_SOURCES_DIR}/src/backend/libpq/md5.c
     ${PQ_SOURCES_DIR}/src/backend/utils/mb/encnames.c
     ${PQ_SOURCES_DIR}/src/backend/utils/mb/wchar.c
-    ${PQ_SOURCES_DIR}/src/port/strlcpy.c
     )
 
-  if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+
+  if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+    LIST(APPEND LIBPQ_SOURCES
+      ${PQ_SOURCES_DIR}/src/port/strlcpy.c
+      )      
+
+  elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
     include_directories(
       ${PQ_SOURCES_DIR}/src/include/port/win32
       ${PQ_SOURCES_DIR}/src/port
@@ -156,6 +182,7 @@
       ${PQ_SOURCES_DIR}/src/port/system.c 
       ${PQ_SOURCES_DIR}/src/port/win32setlocale.c
       ${PQ_SOURCES_DIR}/src/port/getaddrinfo.c
+      ${PQ_SOURCES_DIR}/src/port/strlcpy.c
       )
       
     if (CMAKE_COMPILER_IS_GNUCXX OR