@@ -11,6 +11,9 @@ MESSAGE(STATUS "FTL DISABLE_FTL_APP: " ${DISABLE_FTL_APP})
1111option (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 )
1212MESSAGE (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+
1417find_package (Threads REQUIRED )
1518
1619set (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 )
6568else ()
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 )
7276endif ()
7377
@@ -79,21 +83,33 @@ else(FTL_STATIC_COMPILE)
7983 set (FTL_LIB_TYPE SHARED)
8084endif (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} )
97113include_directories (libftl libftl/gettimeofday )
98114
99115set_target_properties (ftl PROPERTIES VERSION "0.5.0" )
@@ -132,4 +148,19 @@ endif()
132148
133149# Install rules
134150install (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