@@ -54,6 +54,8 @@ add_library(lslobj OBJECT
5454 src/lsl_outlet_c.cpp
5555 src/lsl_streaminfo_c.cpp
5656 src/lsl_xml_element_c.cpp
57+ src/netinterfaces.h
58+ src/netinterfaces.cpp
5759 src/portable_archive/portable_archive_exception.hpp
5860 src/portable_archive/portable_archive_includes.hpp
5961 src/portable_archive/portable_iarchive.hpp
@@ -129,30 +131,32 @@ add_library(lslboost OBJECT
129131 lslboost/libs/chrono/src/chrono.cpp
130132 lslboost/serialization_objects.cpp
131133)
132- if ( UNIX )
133- target_sources (lslboost PRIVATE
134- lslboost/libs/thread/src/pthread/once.cpp
135- lslboost/libs/thread/src/pthread/thread.cpp
136- )
137- find_package (Threads REQUIRED )
138- target_link_libraries (lslboost PUBLIC Threads::Threads )
139- target_compile_features (lslboost PUBLIC cxx_std_11 cxx_lambda_init_captures )
140- else () # WIN32
141- target_sources (lslboost PRIVATE
142- lslboost/libs/thread/src/ win32 /thread.cpp
143- lslboost/libs/thread/src/ win32 /tss_dll.cpp
144- lslboost/libs/thread/src/ win32 /tss_pe.cpp
145- )
146- target_link_libraries (lslboost PRIVATE
147- bcrypt
148- $<$<BOOL : ${MINGW} >:wsock32 ws2_32 winmm >
134+
135+ if ( UNIX )
136+ include (CheckSymbolExists)
137+ # look for clock_gettime, if not we need to link against librt
138+ check_symbol_exists(clock_gettime time.h HAS_GETTIME )
139+ if ( NOT HAS_GETTIME )
140+ set (NEEDS_LIBRT ON CACHE INTERNAL "Link to librt" )
141+ endif ( )
142+ endif ()
143+
144+ find_package (Threads REQUIRED)
145+ target_link_libraries ( lslboost
146+ PUBLIC
147+ Threads::Threads
148+ PRIVATE
149+ $<$<PLATFORM_ID:Windows>: bcrypt>
150+ $<$<PLATFORM_ID:Windows>:iphlpapi >
149151 )
150- endif ( )
152+ target_compile_features (lslboost PUBLIC cxx_std_11 cxx_lambda_init_captures )
151153
152154target_compile_definitions (lslboost
153155 PUBLIC
154156 BOOST_ALL_NO_LIB
157+ BOOST_ASIO_STANDALONE
155158 BOOST_ASIO_SEPARATE_COMPILATION
159+ BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS
156160 $<$<PLATFORM_ID:Windows>:_WIN32_WINNT=${LSL_WINVER} >
157161 PRIVATE
158162 $<$<PLATFORM_ID:Windows>:BOOST_THREAD_BUILD_DLL>
@@ -166,6 +170,7 @@ target_link_libraries(lslobj
166170 lslboost
167171 PUBLIC
168172 $<$<AND :$<BOOL :${LSL_DEBUGLOG} >,$<PLATFORM_ID:Linux>>:dl>
173+ $<$<BOOL :${NEEDS_LIBRT} >:rt>
169174 )
170175target_include_directories (lslobj
171176 PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR} /include >
@@ -193,17 +198,25 @@ if(LSL_BUILD_STATIC)
193198 add_library (lsl-static STATIC src/buildinfo.cpp)
194199 target_compile_definitions (lsl-static PRIVATE LSL_LIBRARY_INFO_STR="${LSL_VERSION_INFO} /link:static" )
195200 target_link_libraries (lsl-static PUBLIC lslobj PRIVATE lslboost)
201+ list (APPEND LSL_EXPORT_TARGETS lsl-static )
196202 # for LSL_CPP_API export header
197203 target_compile_definitions (lsl-static PUBLIC LIBLSL_STATIC)
198204endif ()
199205
200206if (LSL_FORCE_FANCY_LIBNAME)
201- set (CMAKE_DEBUG_POSTFIX "-debug" )
202207 math (EXPR lslplatform "8 * ${CMAKE_SIZEOF_VOID_P} " )
203208 set_target_properties (lsl PROPERTIES
204209 PREFIX ""
205210 OUTPUT_NAME "liblsl${lslplatform} "
211+ DEBUG_POSTFIX "-debug"
212+ )
213+ if (LSL_BUILD_STATIC)
214+ set_target_properties (lsl-static PROPERTIES
215+ PREFIX ""
216+ OUTPUT_NAME "liblsl${lslplatform} -static"
217+ DEBUG_POSTFIX "-debug"
206218 )
219+ endif ()
207220endif ()
208221
209222if (LSL_UNIXFOLDERS)
0 commit comments