-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
44 lines (33 loc) · 1.3 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.24)
project(dahua-c-wrapper LANGUAGES C CXX)
include(GNUInstallDirs)
set(WRAPPER_NAME ${PROJECT_NAME})
set(${WRAPPER_NAME}_SRC
src/dh-wrap.cpp
src/default-callbacks.cpp)
set(${WRAPPER_NAME}_INC
include/dh-wrap.h)
add_library(${WRAPPER_NAME} SHARED ${${WRAPPER_NAME}_SRC} ${${WRAPPER_NAME}_INC})
target_link_options(${WRAPPER_NAME} PUBLIC -Wl,--no-as-needed -Wl,--export-dynamic)
set(DAHUA_INC_PATH "${CMAKE_INSTALL_INCLUDEDIR}" CACHE PATH "Dahua SDK include directory")
set(DAHUA_LIB_PATH "${CMAKE_INSTALL_LIBDIR}" CACHE PATH "Dahua SDK library directory")
# External dependency (Original Dahua library)
target_include_directories(${WRAPPER_NAME}
PUBLIC
${DAHUA_INC_PATH}
)
find_library(DAHUA_NET_SDK dhnetsdk HINTS ${DAHUA_LIB_PATH} REQUIRED)
find_library(DAHUA_CONFIG_SDK dhconfigsdk HINTS ${DAHUA_LIB_PATH} REQUIRED)
target_link_libraries(${WRAPPER_NAME}
PUBLIC
${DAHUA_NET_SDK}
${DAHUA_CONFIG_SDK}
)
install(TARGETS ${WRAPPER_NAME}
EXPORT ${WRAPPER_NAME}
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${WRAPPER_NAME}" COMPONENT shlib
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${WRAPPER_NAME}" COMPONENT dev
)
install(DIRECTORY "${PROJECT_SOURCE_DIR}/include" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${WRAPPER_NAME}"
FILES_MATCHING PATTERN "*.h"
)