Changeset: 0e93c3bb1930 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0e93c3bb1930
Modified Files:
        CMakeLists.txt
        gdk/gdk_posix.c
        monetdb5/mal/mal_linker.h
        monetdb_config.h.in
Branch: cmake-fun
Log Message:

Simplify ODBC tests and dlfcn.h is available on all POSIX platforms we compile 
for.


diffs (135 lines):

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -776,13 +776,24 @@ if(NOT ${ENABLE_ODBC} STREQUAL "NO")
        find_path(ODBCINST_INCLUDE odbcinst.h)
        if(ODBCINST_INCLUDE)
                set(ODBC_INCLUDE_DIR "${ODBCINST_INCLUDE}")
-               if(MSVC)
-                       if(CMAKE_SIZEOF_VOID_P EQUAL 8) # Windows 64 bit
-                               set(LENP_OR_POINTER_T "SQLLEN *")
-                       else()
-                               set(LENP_OR_POINTER_T "SQLPOINTER")
-                       endif()
+               cmake_push_check_state()
+               set(CMAKE_REQUIRED_INCLUDES 
"${CMAKE_REQUIRED_INCLUDES};${ODBC_INCLUDE_DIR}")
+               if(WIN32)
+                       set(CMAKE_EXTRA_INCLUDE_FILES 
"${CMAKE_EXTRA_INCLUDE_FILES};windows.h;sqlext.h;sqltypes.h")
+               else()
+                       set(CMAKE_EXTRA_INCLUDE_FILES 
"${CMAKE_EXTRA_INCLUDE_FILES};sql.h;sqltypes.h")
+               endif()
 
+               check_type_size(SQLLEN _SQLLEN LANGUAGE C)
+               if(HAVE__SQLLEN)
+                       set(LENP_OR_POINTER_T "SQLLEN *")
+               else()
+                       set(LENP_OR_POINTER_T "SQLPOINTER")
+               endif()
+
+               check_type_size(SQLWCHAR SIZEOF_SQLWCHAR LANGUAGE C)
+               cmake_pop_check_state()
+               if(WIN32) # Windows uses different libraries for the ODBC driver
                        find_library(ODBCCP32_LIBRARY odbccp32)
                        if(ODBCCP32_LIBRARY)
                                set(ODBCINST_LIBRARIES 
"${ODBCINST_LIBRARIES};${ODBCCP32_LIBRARY}")
@@ -808,9 +819,6 @@ if(NOT ${ENABLE_ODBC} STREQUAL "NO")
                                message(STATUS "ODBC libraries missing")
                        endif()
                else()
-                       cmake_push_check_state()
-                       set(CMAKE_REQUIRED_INCLUDES 
"${CMAKE_REQUIRED_INCLUDES};${ODBC_INCLUDE_DIR}")
-
                        find_library(ODBCINST_LIBRARY odbcinst)
                        if(ODBCINST_LIBRARY)
                                set(ODBCINST_LIBRARIES "${ODBCINST_LIBRARY}")
@@ -820,32 +828,6 @@ if(NOT ${ENABLE_ODBC} STREQUAL "NO")
                                set(ODBC_LIBRARIES "${ODBC_LIBRARY}")
                        endif()
 
-                       message(STATUS "Checking SQLColAttribute uses SQLLEN * 
or SQLPOINTER")
-                       check_c_source_compiles("
-                               #include <sql.h>
-
-                               SQLRETURN SQL_API
-                               SQLColAttribute(SQLHSTMT hStmt, SQLUSMALLINT 
nCol, SQLUSMALLINT nFieldIdentifier, SQLPOINTER pszValue, SQLSMALLINT 
nValueLengthMax, SQLSMALLINT *pnValueLength, SQLLEN *pnValue) {
-                                       (void) hStmt; (void) nCol; (void) 
nFieldIdentifier; (void) pszValue; (void) nValueLengthMax; (void) 
pnValueLength; (void) pnValue;
-                                       return SQL_SUCCESS;
-                               }
-                               int main(int argc, char **argv) {
-                                       (void) argc; (void) argv;
-                                       return SQLColAttribute(0,0,0,0,0,0,0);
-                               }
-                       " SQL_COL_TEST)
-                       if(SQL_COL_TEST)
-                               message(STATUS "Using 'SQLLEN *' as 
SQLColAttribute")
-                               set(LENP_OR_POINTER_T "SQLLEN *")
-                       else()
-                               message(STATUS "Using 'SQLPOINTER' as 
SQLColAttribute")
-                               set(LENP_OR_POINTER_T "SQLPOINTER")
-                       endif()
-
-                       set(CMAKE_EXTRA_INCLUDE_FILES 
"${CMAKE_EXTRA_INCLUDE_FILES};sqltypes.h")
-                       check_type_size(SQLWCHAR SIZEOF_SQLWCHAR LANGUAGE C)
-                       cmake_pop_check_state()
-
                        if(ODBCINST_LIBRARY AND ODBC_LIBRARY AND 
HAVE_SIZEOF_SQLWCHAR)
                                set(HAVE_ODBC YES)
                        elseif(${ENABLE_ODBC} STREQUAL "YES")
@@ -1012,7 +994,6 @@ endif()
 
 # Header files
 check_include_file("dirent.h" HAVE_DIRENT_H)
-check_include_file("dlfcn.h" HAVE_DLFCN_H)
 check_include_file("fcntl.h" HAVE_FCNTL_H)
 check_include_file("getopt.h" HAVE_GETOPT_H)
 check_include_file("io.h" HAVE_IO_H)
diff --git a/gdk/gdk_posix.c b/gdk/gdk_posix.c
--- a/gdk/gdk_posix.c
+++ b/gdk/gdk_posix.c
@@ -41,6 +41,10 @@
 # include <sys/user.h>
 #endif
 
+#ifndef NATIVE_WIN32
+# include <dlfcn.h>
+#endif
+
 #ifdef NDEBUG
 #ifndef NVALGRIND
 #define NVALGRIND NDEBUG
@@ -652,10 +656,6 @@ MT_path_absolute(const char *pathname)
        return (*pathname == DIR_SEP);
 }
 
-#ifdef HAVE_DLFCN_H
-# include <dlfcn.h>
-#endif
-
 void *
 mdlopen(const char *library, int mode)
 {
diff --git a/monetdb5/mal/mal_linker.h b/monetdb5/mal/mal_linker.h
--- a/monetdb5/mal/mal_linker.h
+++ b/monetdb5/mal/mal_linker.h
@@ -12,7 +12,7 @@
 #define MAL_EXT ".mal"
 #define SQL_EXT ".sql"
 
-#ifdef HAVE_DLFCN_H
+#ifndef NATIVE_WIN32
 #include <dlfcn.h>
 #else
 #define RTLD_LAZY   1
diff --git a/monetdb_config.h.in b/monetdb_config.h.in
--- a/monetdb_config.h.in
+++ b/monetdb_config.h.in
@@ -136,9 +136,6 @@
 /* Define to 1 if you have the <dirent.h> header file. */
 #cmakedefine HAVE_DIRENT_H 1
 
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#cmakedefine HAVE_DLFCN_H 1
-
 /* Support for MonetDB as a library */
 #cmakedefine HAVE_EMBEDDED 1
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to