1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
###############################################################################
# CMake module to search for DB2 client library
#
# On success, the macro sets the following variables:
# DB2_FOUND = if the library found
# DB2_LIBRARIES = full path to the library
# DB2_INCLUDE_DIRS = where to find the library headers
#
# Copyright (c) 2013 Denis Chapligin
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
###############################################################################
if(UNIX)
set(DB2_INSTALL_PATHS
/opt/ibm/db2/V11.5
/opt/ibm/db2/V10.1
/opt/ibm/db2/V9.7
/opt/ibm/db2/V9.5
/opt/ibm/db2/V9.1
/opt/ibm/clidriver
/opt/clidriver)
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(DB2_LIBDIRS "lib32" "lib")
else()
set(DB2_LIBDIRS "lib64" "lib")
endif()
set(DB2_FIND_INCLUDE_PATHS)
set(DB2_FIND_LIB_PATHS)
foreach(db2_install_path ${DB2_INSTALL_PATHS})
if (IS_DIRECTORY ${db2_install_path}/include)
set(DB2_FIND_INCLUDE_PATHS
${DB2_FIND_INCLUDE_PATHS}
${db2_install_path}/include)
endif()
foreach(db2_libdir ${DB2_LIBDIRS})
if (IS_DIRECTORY ${db2_install_path}/${db2_libdir})
set(DB2_FIND_LIB_PATHS
${DB2_FIND_LIB_PATHS}
${db2_install_path}/${db2_libdir})
endif()
endforeach(db2_libdir)
endforeach(db2_install_path)
elseif(WIN32)
if (CMAKE_CL_64) # 64-bit build, DB2 64-bit installed
set(DB2_FIND_INCLUDE_PATHS $ENV{ProgramW6432}/IBM/SQLLIB/include)
set(DB2_FIND_LIB_PATHS $ENV{ProgramW6432}/IBM/SQLLIB/lib)
else() # 32-bit build, DB2 64-bit or DB2 32-bit installed
if(EXISTS "$ENV{ProgramW6432}/IBM/SQLLIB/lib")
# On 64-bit Windows with DB2 64-bit installed:
# LIB environment points to {DB2}/IBM/SQLLIB/lib with64-bit db2api.lib,
# this flag prevents checking paths in LIB, so Win32 version can be detected
set(DB2_FIND_LIB_NO_LIB NO_SYSTEM_ENVIRONMENT_PATH)
endif()
set(DB2_FIND_INCLUDE_PATHS
$ENV{ProgramW6432}/IBM/SQLLIB/include
$ENV{ProgramFiles}/IBM/SQLLIB/include)
set(DB2_FIND_LIB_PATHS
$ENV{ProgramFiles}/IBM/SQLLIB/lib
$ENV{ProgramFiles}/IBM/SQLLIB/lib/win32
$ENV{ProgramW6432}/IBM/SQLLIB/lib/win32)
endif()
endif()
find_path(DB2_INCLUDE_DIRS sqlcli1.h
$ENV{DB2_INCLUDE_DIR}
$ENV{DB2_INCLUDE_DIRS}
$ENV{DB2_DIR}/include
$ENV{DB2_HOME}
$ENV{IBM_DB_INCLUDE}
${DB2_FIND_INCLUDE_PATHS})
find_library(DB2_LIBRARIES
NAMES db2 db2api
PATHS
$ENV{DB2LIB}
$ENV{IBM_DB_LIB}
${DB2_FIND_LIB_PATHS}
${DB2_FIND_LIB_NO_LIB})
if(DB2_LIBRARIES)
get_filename_component(DB2_LIBRARY_DIR ${DB2_LIBRARIES} PATH)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(DB2
REQUIRED_VARS DB2_INCLUDE_DIRS DB2_LIBRARIES
)
add_library(DB2 INTERFACE)
target_link_libraries(DB2 INTERFACE ${DB2_LIBRARIES})
target_include_directories(DB2 SYSTEM INTERFACE ${DB2_INCLUDE_DIRS})
add_library(DB2::DB2 ALIAS DB2)
|