Changeset: 7b872229e179 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7b872229e179
Modified Files:
        CMakeLists.txt
        clients/odbc/driver/ODBCConvert.c
        clients/odbc/winsetup/CMakeLists.txt
        geom/monetdb5/geom.c
Branch: cmake-fun
Log Message:

Compilation fixes and better way to find libraries on Windows.


diffs (115 lines):

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -834,17 +834,21 @@ if(NOT HAVE_LIBLZ4)
 endif()
 
 set(DL_LIBRARIES "")
+set(MATH_LIBRARIES "")
+set(PSAPI_LIBRARIES "")
 if(UNIX)
-       find_library(MATH_LIBRARIES NAMES m DOC "m library to link")
+       find_library(M_LIBRARY NAMES m DOC "m library to link")
        set(DL_LIBRARIES "${CMAKE_DL_LIBS}")
 endif()
-if(NOT MATH_LIBRARIES)
-       set(MATH_LIBRARIES "" CACHE STRING "m library to link")
+if(M_LIBRARY)
+       set(MATH_LIBRARIES "${M_LIBRARY}")
 endif()
 if(WIN32)
-       set(PSAPI_LIBRARIES "psapi")
+       find_library(PSAPI_LIBRARY NAMES Psapi psapi DOC "psapi library to 
link")
 endif()
-set(PSAPI_LIBRARIES "${PSAPI_LIBRARIES}" CACHE STRING "psapi library to link 
(only on Windows)")
+if(PSAPI_LIBRARY)
+       set(PSAPI_LIBRARIES "${PSAPI_LIBRARY}")
+endif()
 
 # Malloc libs
 set(MALLOC_LIBRARIES "")
@@ -1377,27 +1381,31 @@ if(NOT ${ENABLE_ODBC} STREQUAL "NO")
 
                check_include_file("odbcinst.h" HAVE_ODBCINST_H)
                if(HAVE_ODBCINST_H)
-                       set(FOUND_ODBCINST_LIBRARIES )
-                       find_library(ODBCINST_LIBRARIES NAMES odbccp32)
-                       if(ODBCINST_LIBRARIES)
-                               list(APPEND FOUND_ODBCINST_LIBRARIES odbccp32)
+                       find_library(ODBCCP32_LIBRARY NAMES odbccp32)
+                       if(ODBCCP32_LIBRARY)
+                               set(ODBCINST_LIBRARIES 
"${ODBCINST_LIBRARIES};odbccp32")
                        endif()
-                       find_library(ODBCINST_LIBRARIES NAMES user32)
-                       if(ODBCINST_LIBRARIES)
-                               list(APPEND FOUND_ODBCINST_LIBRARIES user32)
+                       find_library(USER32_LIBRARY NAMES user32 User32)
+                       if(USER32_LIBRARY)
+                               set(ODBCINST_LIBRARIES 
"${ODBCINST_LIBRARIES};${USER32_LIBRARY}")
                        endif()
-                       find_library(ODBCINST_LIBRARIES NAMES 
legacy_stdio_definitions)
-                       if(ODBCINST_LIBRARIES)
-                               list(APPEND FOUND_ODBCINST_LIBRARIES 
legacy_stdio_definitions)
+                       find_library(LEGACY_STDIO_LIBRARY NAMES 
legacy_stdio_definitions)
+                       if(LEGACY_STDIO_LIBRARY)
+                               set(ODBCINST_LIBRARIES 
"${ODBCINST_LIBRARIES};legacy_stdio_definitions")
                        endif()
-                       find_library(ODBC_LIBRARIES NAMES odbc32)
 
-                       list(LENGTH ${FOUND_ODBCINST_LIBRARIES} 
FOUND_ODBCINST_LIBRARIES_LENGTH)
-                       if(${FOUND_ODBCINST_LIBRARIES_LENGTH} EQUAL 3 AND 
ODBC_LIBRARIES)
-                               set(ODBCINST_LIBRARIES 
"${FOUND_ODBCINST_LIBRARIES}")
+                       find_library(ODBC32_LIBRARY NAMES odbc32)
+                       if(ODBC32_LIBRARY)
+                               set(ODBC_LIBRARIES odbc32)
+                       endif()
+
+                       if(NOT ${ODBCINST_LIBRARIES} STREQUAL "" AND NOT 
${ODBC_LIBRARIES} STREQUAL "")
                                set(HAVE_ODBC YES)
                        endif()
+               elseif(${ENABLE_ODBC} STREQUAL "YES")
+                       message(FATAL_ERROR "odbcinst.h not found")
                else()
+                       set(HAVE_ODBC NO)
                        message(STATUS "odbcinst.h not found")
                endif()
        else()
diff --git a/clients/odbc/driver/ODBCConvert.c 
b/clients/odbc/driver/ODBCConvert.c
--- a/clients/odbc/driver/ODBCConvert.c
+++ b/clients/odbc/driver/ODBCConvert.c
@@ -39,7 +39,7 @@ typedef struct {
 #endif
 } bignum_t;
 
-#ifndef HAVE_STRNCASECMP
+#if !defined(HAVE_STRNCASECMP) && !defined(_MSC_VER) // For _MSC_VER we use 
_strnicmp
 static int
 strncasecmp(const char *s1, const char *s2, size_t n)
 {
diff --git a/clients/odbc/winsetup/CMakeLists.txt 
b/clients/odbc/winsetup/CMakeLists.txt
--- a/clients/odbc/winsetup/CMakeLists.txt
+++ b/clients/odbc/winsetup/CMakeLists.txt
@@ -9,9 +9,9 @@
 include_directories(../include ../driver ${ODBC_INCLUDE_DIR})
 
 add_library(MonetODBCs SHARED setup.c setup.rc setup.syms resource.h)
-target_link_libraries(gdk PRIVATE ${ODBCINST_LIBRARIES})
+target_link_libraries(MonetODBCs PRIVATE ${ODBCINST_LIBRARIES})
 install(TARGETS MonetODBCs DESTINATION ${LIBDIR})
 
 add_executable(odbcinstall install.c)
-target_link_libraries(gdk PRIVATE ${ODBC_LIBRARIES} ${ODBCINST_LIBRARIES})
+target_link_libraries(MonetODBCs PRIVATE ${ODBC_LIBRARIES} 
${ODBCINST_LIBRARIES})
 install(TARGETS odbcinstall DESTINATION ${BINDIR})
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -2118,7 +2118,7 @@ wkba_size(int items)
        return size;
 }
 
-#ifndef HAVE_STRNCASECMP
+#if !defined(HAVE_STRNCASECMP) && !defined(_MSC_VER) // For _MSC_VER we use 
_strnicmp
 static int
 strncasecmp(const char *s1, const char *s2, size_t n)
 {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to