Skip to content
This repository was archived by the owner on Nov 9, 2022. It is now read-only.

Commit 9d25778

Browse files
author
Robert-André Mauchin
committed
chore: Add the possibility to install dev headers
The library should provide the possibility to install development headers. This patch adds this option by splitting sources and headers in the CMakeLists file, allowing to install the headers separately. Signed-off-by: Robert-André Mauchin <zebob.m@gmail.com>
1 parent ad65d7c commit 9d25778

1 file changed

Lines changed: 55 additions & 24 deletions

File tree

CMakeLists.txt

Lines changed: 55 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ MESSAGE(STATUS "FTL DISABLE_FTL_APP: " ${DISABLE_FTL_APP})
1111
option(FTL_STATIC_COMPILE "Set to TRUE if you want ftl to be compiled as a static lib. If TRUE, the program will want to statically link to the ftl cmake object." FALSE)
1212
MESSAGE(STATUS "FTL FTL_STATIC_COMPILE: " ${FTL_STATIC_COMPILE})
1313

14+
option(FTL_INSTALL_INCLUDES "Set to TRUE if you want development headers to be installed." FALSE)
15+
MESSAGE(STATUS "FTL FTL_INSTALL_INCLUDES: " ${FTL_INSTALL_INCLUDES})
16+
1417
find_package(Threads REQUIRED)
1518

1619
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
@@ -57,17 +60,18 @@ if (WIN32)
5760
ftl_app/win32/ctrlc_handler.c)
5861
#set(FTL_PLATFORM_LIBS kernel32 user32 gdi32 advapi32 )
5962
#set(FTL_PLATFORM_LIBS ws2_32 )
60-
set(FTLSDK_PLATFORM_FILES libftl/win32/socket.c
61-
libftl/win32/socket.h
62-
libftl/win32/threads.c
63-
libftl/win32/threads.h)
63+
set(FTLSDK_PLATFORM_HEADERS libftl/win32/socket.h
64+
libftl/win32/threads.h)
65+
set(FTLSDK_PLATFORM_SOURCES libftl/win32/socket.c
66+
libftl/win32/threads.c)
6467
include_directories(libftl/win32)
6568
else()
6669
set(FTL_PLATFORM_FILES ftl_app/posix/ctrlc_handler.c)
67-
set(FTLSDK_PLATFORM_FILES libftl/posix/socket.c
68-
libftl/posix/socket.h
69-
libftl/posix/threads.c
70-
libftl/posix/threads.h)
70+
71+
set(FTLSDK_PLATFORM_HEADERS libftl/posix/socket.h
72+
libftl/posix/threads.h)
73+
set(FTLSDK_PLATFORM_SOURCES libftl/posix/socket.c
74+
libftl/posix/threads.c)
7175
include_directories(libftl/posix)
7276
endif()
7377

@@ -79,21 +83,33 @@ else(FTL_STATIC_COMPILE)
7983
set(FTL_LIB_TYPE SHARED)
8084
endif(FTL_STATIC_COMPILE)
8185

82-
add_library(ftl ${FTL_LIB_TYPE} libftl/hmac/hmac.c
83-
libftl/hmac/hmac.h
84-
libftl/hmac/sha2.c
85-
libftl/hmac/sha2.h
86-
libftl/gettimeofday/gettimeofday.c
87-
libftl/gettimeofday/gettimeofday.h
88-
libftl/ftl-sdk.c
89-
libftl/handshake.c
90-
libftl/ingest.c
91-
libftl/ftl_helpers.c
92-
libftl/media.c
93-
libftl/logging.c
94-
libftl/ftl.h
95-
libftl/ftl_private.h
96-
${FTLSDK_PLATFORM_FILES})
86+
set(FTL_HEADERS
87+
libftl/ftl.h
88+
libftl/ftl_private.h)
89+
90+
set(FTL_HMAC_HEADERS
91+
libftl/hmac/hmac.h
92+
libftl/hmac/sha2.h)
93+
94+
set(FTL_GETTIMEOFDAY_HEADERS
95+
libftl/gettimeofday/gettimeofday.h)
96+
97+
set(FTL_SOURCES
98+
libftl/hmac/hmac.c
99+
libftl/hmac/sha2.c
100+
libftl/gettimeofday/gettimeofday.c
101+
libftl/ftl-sdk.c
102+
libftl/handshake.c
103+
libftl/ingest.c
104+
libftl/ftl_helpers.c
105+
libftl/media.c
106+
libftl/logging.c)
107+
108+
add_library(ftl ${FTL_LIB_TYPE} ${FTL_HEADERS}
109+
${FTL_HMAC_HEADERS}
110+
${FTL_GETTIMEOFDAY_HEADERS}
111+
${FTLSDK_PLATFORM_HEADERS}
112+
${FTLSDK_PLATFORM_SOURCES})
97113
include_directories(libftl libftl/gettimeofday)
98114

99115
set_target_properties(ftl PROPERTIES VERSION "0.5.0")
@@ -132,4 +148,19 @@ endif()
132148

133149
# Install rules
134150
install(TARGETS ftl DESTINATION
135-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
151+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
152+
153+
if (FTL_INSTALL_INCLUDES)
154+
foreach(ITEM ${FTL_HEADERS})
155+
install(FILES ${ITEM} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftl)
156+
endforeach()
157+
foreach(ITEM ${FTL_HMAC_HEADERS})
158+
install(FILES ${ITEM} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftl/hmac/)
159+
endforeach()
160+
foreach(ITEM ${FTL_GETTIMEOFDAY_HEADERS})
161+
install(FILES ${ITEM} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftl/gettimeofday)
162+
endforeach()
163+
foreach(ITEM ${FTLSDK_PLATFORM_HEADERS})
164+
install(FILES ${ITEM} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftl)
165+
endforeach()
166+
endif()

0 commit comments

Comments
 (0)