mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-29 19:12:03 +00:00
319 lines
15 KiB
CMake
319 lines
15 KiB
CMake
option (ENABLE_ODBC "Enable ODBC library" ${ENABLE_LIBRARIES})
|
|
|
|
if (NOT OS_LINUX)
|
|
set (ENABLE_ODBC OFF CACHE INTERNAL "")
|
|
endif ()
|
|
|
|
if (ENABLE_ODBC)
|
|
option (USE_INTERNAL_ODBC_LIBRARY "Use internal ODBC library" ${NOT_UNBUNDLED})
|
|
|
|
if (USE_INTERNAL_ODBC_LIBRARY)
|
|
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/unixodbc)
|
|
|
|
# ltdl
|
|
|
|
set (SRCS_LTDL
|
|
# This file is generated by 'libtool' inside libltdl directory and then removed.
|
|
linux_x86_64/libltdl/libltdlcS.c
|
|
|
|
${LIBRARY_DIR}/libltdl/lt__alloc.c
|
|
${LIBRARY_DIR}/libltdl/lt__strl.c
|
|
${LIBRARY_DIR}/libltdl/ltdl.c
|
|
${LIBRARY_DIR}/libltdl/lt_dlloader.c
|
|
${LIBRARY_DIR}/libltdl/slist.c
|
|
${LIBRARY_DIR}/libltdl/lt_error.c
|
|
${LIBRARY_DIR}/libltdl/loaders/dlopen.c
|
|
${LIBRARY_DIR}/libltdl/loaders/preopen.c
|
|
)
|
|
|
|
add_library (ltdl ${SRCS_LTDL})
|
|
|
|
target_include_directories(ltdl
|
|
PRIVATE
|
|
linux_x86_64/libltdl
|
|
PUBLIC
|
|
${LIBRARY_DIR}/libltdl
|
|
${LIBRARY_DIR}/libltdl/libltdl
|
|
)
|
|
target_compile_definitions(ltdl PRIVATE -DHAVE_CONFIG_H -DLTDL -DLTDLOPEN=libltdlc)
|
|
target_compile_options(ltdl PRIVATE -Wno-constant-logical-operand -Wno-unknown-warning-option -O2)
|
|
|
|
# odbc
|
|
|
|
set (SRCS
|
|
${LIBRARY_DIR}/DriverManager/__attribute.c
|
|
${LIBRARY_DIR}/DriverManager/__connection.c
|
|
${LIBRARY_DIR}/DriverManager/__handles.c
|
|
${LIBRARY_DIR}/DriverManager/__info.c
|
|
${LIBRARY_DIR}/DriverManager/__stats.c
|
|
${LIBRARY_DIR}/DriverManager/SQLAllocConnect.c
|
|
${LIBRARY_DIR}/DriverManager/SQLAllocEnv.c
|
|
${LIBRARY_DIR}/DriverManager/SQLAllocHandle.c
|
|
${LIBRARY_DIR}/DriverManager/SQLAllocHandleStd.c
|
|
${LIBRARY_DIR}/DriverManager/SQLAllocStmt.c
|
|
${LIBRARY_DIR}/DriverManager/SQLBindCol.c
|
|
${LIBRARY_DIR}/DriverManager/SQLBindParam.c
|
|
${LIBRARY_DIR}/DriverManager/SQLBindParameter.c
|
|
${LIBRARY_DIR}/DriverManager/SQLBrowseConnect.c
|
|
${LIBRARY_DIR}/DriverManager/SQLBrowseConnectW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLBulkOperations.c
|
|
${LIBRARY_DIR}/DriverManager/SQLCancel.c
|
|
${LIBRARY_DIR}/DriverManager/SQLCancelHandle.c
|
|
${LIBRARY_DIR}/DriverManager/SQLCloseCursor.c
|
|
${LIBRARY_DIR}/DriverManager/SQLColAttribute.c
|
|
${LIBRARY_DIR}/DriverManager/SQLColAttributes.c
|
|
${LIBRARY_DIR}/DriverManager/SQLColAttributesW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLColAttributeW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLColumnPrivileges.c
|
|
${LIBRARY_DIR}/DriverManager/SQLColumnPrivilegesW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLColumns.c
|
|
${LIBRARY_DIR}/DriverManager/SQLColumnsW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLConnect.c
|
|
${LIBRARY_DIR}/DriverManager/SQLConnectW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLCopyDesc.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDataSources.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDataSourcesW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDescribeCol.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDescribeColW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDescribeParam.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDisconnect.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDriverConnect.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDriverConnectW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDrivers.c
|
|
${LIBRARY_DIR}/DriverManager/SQLDriversW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLEndTran.c
|
|
${LIBRARY_DIR}/DriverManager/SQLError.c
|
|
${LIBRARY_DIR}/DriverManager/SQLErrorW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLExecDirect.c
|
|
${LIBRARY_DIR}/DriverManager/SQLExecDirectW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLExecute.c
|
|
${LIBRARY_DIR}/DriverManager/SQLExtendedFetch.c
|
|
${LIBRARY_DIR}/DriverManager/SQLFetch.c
|
|
${LIBRARY_DIR}/DriverManager/SQLFetchScroll.c
|
|
${LIBRARY_DIR}/DriverManager/SQLForeignKeys.c
|
|
${LIBRARY_DIR}/DriverManager/SQLForeignKeysW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLFreeConnect.c
|
|
${LIBRARY_DIR}/DriverManager/SQLFreeEnv.c
|
|
${LIBRARY_DIR}/DriverManager/SQLFreeHandle.c
|
|
${LIBRARY_DIR}/DriverManager/SQLFreeStmt.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetConnectAttr.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetConnectAttrW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetConnectOption.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetConnectOptionW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetCursorName.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetCursorNameW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetData.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetDescField.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetDescFieldW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetDescRec.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetDescRecW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetDiagField.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetDiagFieldW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetDiagRec.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetDiagRecW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetEnvAttr.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetFunctions.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetInfo.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetInfoW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetStmtAttr.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetStmtAttrW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetStmtOption.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetTypeInfo.c
|
|
${LIBRARY_DIR}/DriverManager/SQLGetTypeInfoW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLMoreResults.c
|
|
${LIBRARY_DIR}/DriverManager/SQLNativeSql.c
|
|
${LIBRARY_DIR}/DriverManager/SQLNativeSqlW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLNumParams.c
|
|
${LIBRARY_DIR}/DriverManager/SQLNumResultCols.c
|
|
${LIBRARY_DIR}/DriverManager/SQLParamData.c
|
|
${LIBRARY_DIR}/DriverManager/SQLParamOptions.c
|
|
${LIBRARY_DIR}/DriverManager/SQLPrepare.c
|
|
${LIBRARY_DIR}/DriverManager/SQLPrepareW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLPrimaryKeys.c
|
|
${LIBRARY_DIR}/DriverManager/SQLPrimaryKeysW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLProcedureColumns.c
|
|
${LIBRARY_DIR}/DriverManager/SQLProcedureColumnsW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLProcedures.c
|
|
${LIBRARY_DIR}/DriverManager/SQLProceduresW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLPutData.c
|
|
${LIBRARY_DIR}/DriverManager/SQLRowCount.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetConnectAttr.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetConnectAttrW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetConnectOption.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetConnectOptionW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetCursorName.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetCursorNameW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetDescField.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetDescFieldW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetDescRec.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetEnvAttr.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetParam.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetPos.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetScrollOptions.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetStmtAttr.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetStmtAttrW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetStmtOption.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSetStmtOptionW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSpecialColumns.c
|
|
${LIBRARY_DIR}/DriverManager/SQLSpecialColumnsW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLStatistics.c
|
|
${LIBRARY_DIR}/DriverManager/SQLStatisticsW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLTablePrivileges.c
|
|
${LIBRARY_DIR}/DriverManager/SQLTablePrivilegesW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLTables.c
|
|
${LIBRARY_DIR}/DriverManager/SQLTablesW.c
|
|
${LIBRARY_DIR}/DriverManager/SQLTransact.c
|
|
${LIBRARY_DIR}/ini/_iniDump.c
|
|
${LIBRARY_DIR}/ini/_iniObjectRead.c
|
|
${LIBRARY_DIR}/ini/_iniPropertyRead.c
|
|
${LIBRARY_DIR}/ini/_iniScanUntilObject.c
|
|
${LIBRARY_DIR}/ini/iniAllTrim.c
|
|
${LIBRARY_DIR}/ini/iniAppend.c
|
|
${LIBRARY_DIR}/ini/iniClose.c
|
|
${LIBRARY_DIR}/ini/iniCommit.c
|
|
${LIBRARY_DIR}/ini/iniCursor.c
|
|
${LIBRARY_DIR}/ini/iniDelete.c
|
|
${LIBRARY_DIR}/ini/iniElement.c
|
|
${LIBRARY_DIR}/ini/iniElementCount.c
|
|
${LIBRARY_DIR}/ini/iniGetBookmark.c
|
|
${LIBRARY_DIR}/ini/iniGotoBookmark.c
|
|
${LIBRARY_DIR}/ini/iniObject.c
|
|
${LIBRARY_DIR}/ini/iniObjectDelete.c
|
|
${LIBRARY_DIR}/ini/iniObjectEOL.c
|
|
${LIBRARY_DIR}/ini/iniObjectFirst.c
|
|
${LIBRARY_DIR}/ini/iniObjectInsert.c
|
|
${LIBRARY_DIR}/ini/iniObjectLast.c
|
|
${LIBRARY_DIR}/ini/iniObjectNext.c
|
|
${LIBRARY_DIR}/ini/iniObjectSeek.c
|
|
${LIBRARY_DIR}/ini/iniObjectSeekSure.c
|
|
${LIBRARY_DIR}/ini/iniObjectUpdate.c
|
|
${LIBRARY_DIR}/ini/iniOpen.c
|
|
${LIBRARY_DIR}/ini/iniProperty.c
|
|
${LIBRARY_DIR}/ini/iniPropertyDelete.c
|
|
${LIBRARY_DIR}/ini/iniPropertyEOL.c
|
|
${LIBRARY_DIR}/ini/iniPropertyFirst.c
|
|
${LIBRARY_DIR}/ini/iniPropertyInsert.c
|
|
${LIBRARY_DIR}/ini/iniPropertyLast.c
|
|
${LIBRARY_DIR}/ini/iniPropertyNext.c
|
|
${LIBRARY_DIR}/ini/iniPropertySeek.c
|
|
${LIBRARY_DIR}/ini/iniPropertySeekSure.c
|
|
${LIBRARY_DIR}/ini/iniPropertyUpdate.c
|
|
${LIBRARY_DIR}/ini/iniPropertyValue.c
|
|
${LIBRARY_DIR}/ini/iniToUpper.c
|
|
${LIBRARY_DIR}/ini/iniValue.c
|
|
${LIBRARY_DIR}/log/_logFreeMsg.c
|
|
${LIBRARY_DIR}/log/logClear.c
|
|
${LIBRARY_DIR}/log/logClose.c
|
|
${LIBRARY_DIR}/log/logOn.c
|
|
${LIBRARY_DIR}/log/logOpen.c
|
|
${LIBRARY_DIR}/log/logPeekMsg.c
|
|
${LIBRARY_DIR}/log/logPopMsg.c
|
|
${LIBRARY_DIR}/log/logPushMsg.c
|
|
${LIBRARY_DIR}/lst/_lstAdjustCurrent.c
|
|
${LIBRARY_DIR}/lst/_lstDump.c
|
|
${LIBRARY_DIR}/lst/_lstFreeItem.c
|
|
${LIBRARY_DIR}/lst/_lstNextValidItem.c
|
|
${LIBRARY_DIR}/lst/_lstPrevValidItem.c
|
|
${LIBRARY_DIR}/lst/_lstVisible.c
|
|
${LIBRARY_DIR}/lst/lstAppend.c
|
|
${LIBRARY_DIR}/lst/lstClose.c
|
|
${LIBRARY_DIR}/lst/lstDelete.c
|
|
${LIBRARY_DIR}/lst/lstEOL.c
|
|
${LIBRARY_DIR}/lst/lstFirst.c
|
|
${LIBRARY_DIR}/lst/lstGet.c
|
|
${LIBRARY_DIR}/lst/lstGetBookMark.c
|
|
${LIBRARY_DIR}/lst/lstGoto.c
|
|
${LIBRARY_DIR}/lst/lstGotoBookMark.c
|
|
${LIBRARY_DIR}/lst/lstInsert.c
|
|
${LIBRARY_DIR}/lst/lstLast.c
|
|
${LIBRARY_DIR}/lst/lstNext.c
|
|
${LIBRARY_DIR}/lst/lstOpen.c
|
|
${LIBRARY_DIR}/lst/lstOpenCursor.c
|
|
${LIBRARY_DIR}/lst/lstPrev.c
|
|
${LIBRARY_DIR}/lst/lstSeek.c
|
|
${LIBRARY_DIR}/lst/lstSeekItem.c
|
|
${LIBRARY_DIR}/lst/lstSet.c
|
|
${LIBRARY_DIR}/lst/lstSetFreeFunc.c
|
|
${LIBRARY_DIR}/odbcinst/_logging.c
|
|
${LIBRARY_DIR}/odbcinst/_odbcinst_ConfigModeINI.c
|
|
${LIBRARY_DIR}/odbcinst/_odbcinst_GetEntries.c
|
|
${LIBRARY_DIR}/odbcinst/_odbcinst_GetSections.c
|
|
${LIBRARY_DIR}/odbcinst/_odbcinst_SystemINI.c
|
|
${LIBRARY_DIR}/odbcinst/_odbcinst_UserINI.c
|
|
${LIBRARY_DIR}/odbcinst/_SQLDriverConnectPrompt.c
|
|
${LIBRARY_DIR}/odbcinst/_SQLGetInstalledDrivers.c
|
|
${LIBRARY_DIR}/odbcinst/_SQLWriteInstalledDrivers.c
|
|
${LIBRARY_DIR}/odbcinst/ODBCINSTConstructProperties.c
|
|
${LIBRARY_DIR}/odbcinst/ODBCINSTDestructProperties.c
|
|
${LIBRARY_DIR}/odbcinst/ODBCINSTSetProperty.c
|
|
${LIBRARY_DIR}/odbcinst/ODBCINSTValidateProperties.c
|
|
${LIBRARY_DIR}/odbcinst/ODBCINSTValidateProperty.c
|
|
${LIBRARY_DIR}/odbcinst/SQLConfigDataSource.c
|
|
${LIBRARY_DIR}/odbcinst/SQLConfigDriver.c
|
|
${LIBRARY_DIR}/odbcinst/SQLCreateDataSource.c
|
|
${LIBRARY_DIR}/odbcinst/SQLGetAvailableDrivers.c
|
|
${LIBRARY_DIR}/odbcinst/SQLGetConfigMode.c
|
|
${LIBRARY_DIR}/odbcinst/SQLGetInstalledDrivers.c
|
|
${LIBRARY_DIR}/odbcinst/SQLGetPrivateProfileString.c
|
|
${LIBRARY_DIR}/odbcinst/SQLGetTranslator.c
|
|
${LIBRARY_DIR}/odbcinst/SQLInstallDriverEx.c
|
|
${LIBRARY_DIR}/odbcinst/SQLInstallDriverManager.c
|
|
${LIBRARY_DIR}/odbcinst/SQLInstallerError.c
|
|
${LIBRARY_DIR}/odbcinst/SQLInstallODBC.c
|
|
${LIBRARY_DIR}/odbcinst/SQLInstallTranslatorEx.c
|
|
${LIBRARY_DIR}/odbcinst/SQLManageDataSources.c
|
|
${LIBRARY_DIR}/odbcinst/SQLPostInstallerError.c
|
|
${LIBRARY_DIR}/odbcinst/SQLReadFileDSN.c
|
|
${LIBRARY_DIR}/odbcinst/SQLRemoveDriver.c
|
|
${LIBRARY_DIR}/odbcinst/SQLRemoveDriverManager.c
|
|
${LIBRARY_DIR}/odbcinst/SQLRemoveDSNFromIni.c
|
|
${LIBRARY_DIR}/odbcinst/SQLRemoveTranslator.c
|
|
${LIBRARY_DIR}/odbcinst/SQLSetConfigMode.c
|
|
${LIBRARY_DIR}/odbcinst/SQLValidDSN.c
|
|
${LIBRARY_DIR}/odbcinst/SQLWriteDSNToIni.c
|
|
${LIBRARY_DIR}/odbcinst/SQLWriteFileDSN.c
|
|
${LIBRARY_DIR}/odbcinst/SQLWritePrivateProfileString.c
|
|
)
|
|
|
|
add_library (unixodbc ${SRCS})
|
|
|
|
target_link_libraries (unixodbc PRIVATE ltdl)
|
|
|
|
# SYSTEM_FILE_PATH was changed to /etc
|
|
|
|
target_include_directories (unixodbc
|
|
PRIVATE
|
|
linux_x86_64/private
|
|
PUBLIC
|
|
linux_x86_64
|
|
${LIBRARY_DIR}/include
|
|
)
|
|
target_compile_definitions (unixodbc PRIVATE -DHAVE_CONFIG_H)
|
|
target_compile_options (unixodbc
|
|
PRIVATE
|
|
-Wno-dangling-else
|
|
-Wno-parentheses
|
|
-Wno-misleading-indentation
|
|
-Wno-unknown-warning-option
|
|
-Wno-reserved-id-macro
|
|
-O2
|
|
)
|
|
else ()
|
|
add_library (unixodbc UNKNOWN IMPORTED)
|
|
|
|
find_library (LIBRARY_ODBC unixodbc)
|
|
find_path (INCLUDE_ODBC sql.h)
|
|
set_target_properties (unixodbc PROPERTIES IMPORTED_LOCATION ${LIBRARY_ODBC})
|
|
set_target_properties (unixodbc PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INCLUDE_ODBC})
|
|
endif ()
|
|
|
|
target_compile_definitions (unixodbc PUBLIC USE_ODBC=1)
|
|
|
|
message (STATUS "Using unixodbc")
|
|
else ()
|
|
add_library (unixodbc INTERFACE)
|
|
target_compile_definitions (unixodbc INTERFACE USE_ODBC=0)
|
|
|
|
message (STATUS "Not using unixodbc")
|
|
endif ()
|