summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/cmake/install/install.cmake
blob: 3bf5d313a7fd49178c6e13bb385aa664dd4629a0 (plain)
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
#
# Public Domain 2014-present MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#  All rights reserved.
#
#  See the file LICENSE for redistribution information
#

include(GNUInstallDirs)

# Library installs

# Define the wiredtiger public headers we want to export when running the install target.
install(
    FILES ${CMAKE_BINARY_DIR}/include/wiredtiger.h ${CMAKE_SOURCE_DIR}/src/include/wiredtiger_ext.h
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

# Define the wiredtiger library targets we will install.
set(wt_targets)
if(ENABLE_SHARED)
    list(APPEND wt_targets wiredtiger_shared)
endif()
if(ENABLE_STATIC)
    list(APPEND wt_targets wiredtiger_static)
endif()

# Install the wiredtiger library targets.
install(TARGETS ${wt_targets}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

# Create our wiredtiger pkgconfig (for POSIX builds).
if(WT_POSIX)
    # Established the link flags for private libraries used by this WiredTiger. 'Private' in this context refers
    # to libraries WT links against, but isn't exposed to using applications.
    set(private_libs)
    if(HAVE_LIBPTHREAD)
        set(private_libs "${private_libs} -lpthread")
    endif()
    if(HAVE_LIBRT)
        set(private_libs "${private_libs} -lrt")
    endif()
    if(HAVE_LIBDL)
        set(private_libs "${private_libs} -ldl")
    endif()
    if(ENABLE_TCMALLOC)
        set(private_libs "${private_libs} -ltcmalloc")
    endif()
    if(HAVE_BUILTIN_EXTENSION_LZ4)
        set(private_libs "${private_libs} -llz4")
    endif()
    if(HAVE_BUILTIN_EXTENSION_SNAPPY)
        set(private_libs "${private_libs} -lsnappy")
    endif()
    if(HAVE_BUILTIN_EXTENSION_SODIUM)
        set(private_libs "${private_libs} -lsodium")
    endif()
    if(HAVE_BUILTIN_EXTENSION_ZLIB)
        set(private_libs "${private_libs} -lz")
    endif()
    if(HAVE_BUILTIN_EXTENSION_ZSTD)
        set(private_libs "${private_libs} -lzstd")
    endif()
    set(PRIVATE_PKG_LIBS "${private_libs}")
    configure_file(${CMAKE_CURRENT_LIST_DIR}/wiredtiger.pc.in wiredtiger.pc @ONLY)
    install(
        FILES ${CMAKE_BINARY_DIR}/wiredtiger.pc
        DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
    )
endif()