Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/libcbor/src/CMakeLists.txt
39482 views
1
set(SOURCES cbor.c allocators.c cbor/streaming.c cbor/internal/encoders.c cbor/internal/builder_callbacks.c cbor/internal/loaders.c cbor/internal/memory_utils.c cbor/internal/stack.c cbor/internal/unicode.c cbor/encoding.c cbor/serialization.c cbor/arrays.c cbor/common.c cbor/floats_ctrls.c cbor/bytestrings.c cbor/callbacks.c cbor/strings.c cbor/maps.c cbor/tags.c cbor/ints.c)
2
3
include(JoinPaths)
4
include(CheckFunctionExists)
5
set(CMAKE_SKIP_BUILD_RPATH FALSE)
6
7
if (NOT DEFINED CMAKE_MACOSX_RPATH)
8
set(CMAKE_MACOSX_RPATH 0)
9
endif()
10
11
add_library(cbor ${SOURCES})
12
target_include_directories(cbor PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
13
14
# Explicitly link math.h if necessary
15
check_function_exists(ldexp LDEXP_AVAILABLE)
16
if (NOT LDEXP_AVAILABLE)
17
target_link_libraries(cbor m)
18
endif()
19
20
include(GenerateExportHeader)
21
generate_export_header(cbor EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/cbor/cbor_export.h)
22
target_include_directories(cbor PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
23
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cbor/cbor_export.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cbor)
24
25
if (NOT ${CBOR_VERSION_MAJOR} EQUAL 0)
26
MESSAGE(FATAL_ERROR "Change the shared library version scheme to reflect https://github.com/PJK/libcbor/issues/52.")
27
endif()
28
29
set_target_properties(cbor PROPERTIES
30
VERSION ${CBOR_VERSION}
31
MACHO_COMPATIBILITY_VERSION ${CBOR_VERSION_MAJOR}.${CBOR_VERSION_MINOR}.0
32
SOVERSION ${CBOR_VERSION_MAJOR}.${CBOR_VERSION_MINOR})
33
34
join_paths(libdir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
35
join_paths(includedir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
36
configure_file(libcbor.pc.in libcbor.pc @ONLY)
37
38
# http://www.cmake.org/Wiki/CMake:Install_Commands
39
install(TARGETS cbor
40
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
41
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
42
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
43
44
install(DIRECTORY cbor DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
45
FILES_MATCHING PATTERN "*.h")
46
47
install(FILES cbor.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
48
49
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libcbor.pc"
50
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
51
52
include(CMakePackageConfigHelpers)
53
configure_package_config_file(
54
libcborConfig.cmake.in
55
${CMAKE_CURRENT_BINARY_DIR}/libcborConfig.cmake
56
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libcbor
57
PATH_VARS CMAKE_INSTALL_INCLUDEDIR
58
)
59
write_basic_package_version_file(
60
${CMAKE_CURRENT_BINARY_DIR}/libcborConfigVersion.cmake
61
VERSION ${CBOR_VERSION}
62
COMPATIBILITY SameMajorVersion
63
)
64
install(
65
FILES
66
${CMAKE_CURRENT_BINARY_DIR}/libcborConfig.cmake
67
${CMAKE_CURRENT_BINARY_DIR}/libcborConfigVersion.cmake
68
DESTINATION
69
${CMAKE_INSTALL_LIBDIR}/cmake/libcbor
70
)
71
72