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