]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #894 in SNORT/snort3 from poc_work to master
authorMichael Altizer (mialtize) <mialtize@cisco.com>
Tue, 16 May 2017 18:05:41 +0000 (14:05 -0400)
committerMichael Altizer (mialtize) <mialtize@cisco.com>
Tue, 16 May 2017 18:05:41 +0000 (14:05 -0400)
Squashed commit of the following:

commit 8fc6c009d224fbbc9aef5528b181bd193bcc7772
Author: Michael Altizer <mialtize@cisco.com>
Date:   Mon May 8 16:35:02 2017 -0400

    tools: Clean up per-target includes and libraries

commit 8054717b7735294bc685210548b4779f38ee4547
Author: Michael Altizer <mialtize@cisco.com>
Date:   Mon May 8 16:34:18 2017 -0400

    cmake: Fix erroneous space when checking for netdb.h

commit dcf1750fd041b0a0b16dc7f62b6497fcffa3c8d3
Author: Michael Altizer <mialtize@cisco.com>
Date:   Mon May 8 16:33:21 2017 -0400

    cmake: Check if libsfbpf is needed to link against libpcap

    Some implementations of libpcap have a dependency on libsfbpf and CMake
    has issues resolving library dependencies; help it along.

cmake/FindPCAP.cmake
cmake/sanity_checks.cmake
tools/flatbuffers/CMakeLists.txt
tools/u2boat/CMakeLists.txt
tools/u2spewfoo/CMakeLists.txt

index 86faccfce506d6461a81fef6f9a85631487f73a6..da64c5603ab970bba2f6dc019d97b560bc86d4cf 100644 (file)
@@ -54,16 +54,38 @@ check_c_source_compiles("int main() { return 0; }" PCAP_LINKS_SOLO)
 set(CMAKE_REQUIRED_LIBRARIES)
 
 
-# check if linking against libpcap also needs to link against a thread library
+# check if linking against libpcap also needs to link against a thread and/or SFBPF library
 if (NOT PCAP_LINKS_SOLO)
     find_package(Threads)
     if (THREADS_FOUND)
         set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
-        check_c_source_compiles("int main() { return 0; }" PCAP_NEEDS_THREADS)
+        check_c_source_compiles("int main() { return 0; }" PCAP_NEEDS_THREADS_ONLY)
+        if (PCAP_NEEDS_THREADS_ONLY)
+            set(PCAP_EXTRA_LIBS ${CMAKE_THREAD_LIBS_INIT})
+        endif ()
         set(CMAKE_REQUIRED_LIBRARIES)
     endif ()
-    if (THREADS_FOUND AND PCAP_NEEDS_THREADS)
-        set(_tmp ${PCAP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+
+    find_package(SFBPF)
+    if (NOT PCAP_NEEDS_THREADS AND SFBPF_FOUND)
+        set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARIES} ${SFBPF_LIBRARIES})
+        check_c_source_compiles("int main() { return 0; }" PCAP_NEEDS_SFBPF_ONLY)
+        if (PCAP_NEEDS_SFBPF_ONLY)
+            set(PCAP_EXTRA_LIBS ${SFBPF_LIBRARIES})
+        endif ()
+        set(CMAKE_REQUIRED_LIBRARIES)
+    endif ()
+
+    if (NOT (PCAP_NEEDS_THREADS_ONLY OR PCAP_NEEDS_SFBPF_ONLY) AND THREADS_FOUND AND SFBPF_FOUND)
+        set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARIES} ${SFBPF_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+        check_c_source_compiles("int main() { return 0; }" PCAP_NEEDS_SFBPF_AND_THREADS)
+        if (PCAP_NEEDS_SFBPF_AND_THREADS)
+            set(PCAP_EXTRA_LIBS ${SFBPF_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+        endif ()
+    endif ()
+
+    if (PCAP_EXTRA_LIBS)
+        set(_tmp ${PCAP_LIBRARIES} ${PCAP_EXTRA_LIBS})
         list(REMOVE_DUPLICATES _tmp)
         set(PCAP_LIBRARIES ${_tmp}
             CACHE STRING "Libraries needed to link against libpcap" FORCE)
index b0567d1fb427b960925ece66d3caa8ec3cdd0f25..ea93ce6ac128b6a261c949dd02d062ac90295014 100644 (file)
@@ -22,7 +22,7 @@ check_include_file_cxx("inttypes.h" HAVE_INTTYPES_H)
 check_include_file_cxx("libintl.h" HAVE_LIBINTL_H)
 check_include_file_cxx("limits.h" HAVE_LIMITS_H)
 check_include_file_cxx("malloc.h" HAVE_MALLOC_H)
-check_include_file_cxx("netdb.h " HAVE_NETDB_H)
+check_include_file_cxx("netdb.h" HAVE_NETDB_H)
 check_include_file_cxx("netinet/in.h" HAVE_NETINET_IN_H)
 check_include_file_cxx("stddef.h" HAVE_STDDEF_H)
 check_include_file_cxx("stdint.h" HAVE_STDINT_H)
index e006e0fe50a29f6e8b137e4435844520a8a2e4c0..6bfaa667866309dce57e3c8d9cf9627eaaf21d84 100644 (file)
@@ -1,11 +1,15 @@
 if ( FLATBUFFERS_FOUND )
-    include_directories(${PROJECT_SOURCE_DIR}/src ${FLATBUFFERS_INCLUDE_DIR})
-
     add_executable( fbstreamer
         fbstreamer.cc
     )
 
-    target_link_libraries( fbstreamer ${FLATBUFFERS_LIBRARIES} )
+    target_include_directories( fbstreamer
+        PRIVATE
+        ${FLATBUFFERS_INCLUDE_DIR}
+    )
+    target_link_libraries( fbstreamer
+        ${FLATBUFFERS_LIBRARIES}
+    )
 
     install (TARGETS fbstreamer
         RUNTIME DESTINATION bin
index 5a23d19d23fe96d095ba35903973495bf5ab8bbe..206097e8ca5880b0237a7256793fdce5676bfa45 100644 (file)
@@ -1,15 +1,17 @@
 
-include_directories(${PROJECT_SOURCE_DIR}/src)
-
 add_executable( u2boat
     u2boat.cc
 )
 
+target_include_directories( u2boat
+    PRIVATE
+    ${PROJECT_SOURCE_DIR}/src
+    ${PCAP_INCLUDE_DIR}
+)
 target_link_libraries( u2boat
     ${PCAP_LIBRARIES}
 )
 
-
 install (TARGETS u2boat
     RUNTIME DESTINATION bin
 )
index 9e0d7937162e8beeb675e5645cff01ff759d37d1..2d47900d4d847e0ffe5c1a319d52a9b8cd731c98 100644 (file)
@@ -1,11 +1,14 @@
 
-include_directories(${PROJECT_SOURCE_DIR}/src)
-
 add_executable( u2spewfoo
     u2spewfoo.cc
     u2_common.h
 )
 
+target_include_directories( u2spewfoo
+    PRIVATE
+    ${PROJECT_SOURCE_DIR}/src
+)
+
 install (TARGETS u2spewfoo
     RUNTIME DESTINATION bin
 )