]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #1127 in SNORT/snort3 from cmake to master
authorMichael Altizer (mialtize) <mialtize@cisco.com>
Thu, 8 Mar 2018 21:17:02 +0000 (16:17 -0500)
committerMichael Altizer (mialtize) <mialtize@cisco.com>
Thu, 8 Mar 2018 21:17:02 +0000 (16:17 -0500)
Squashed commit of the following:

commit c508ba610a5c649f9316d89441a4df464f56ca99
Author: Michael Altizer <mialtize@cisco.com>
Date:   Thu Mar 8 14:25:25 2018 -0500

    build: Remove obsolete forced symbol inclusion logic

commit 17dfa88eb02e3838b5a106d0133cac0ff82e3199
Author: Michael Altizer <mialtize@cisco.com>
Date:   Thu Mar 1 14:13:37 2018 -0500

    cmake: First pass at revamping CMake build system

commit b63bb80600ef2ccbfbd20784219aa1b9adfa26f6
Author: Michael Altizer <mialtize@cisco.com>
Date:   Thu Mar 8 10:33:14 2018 -0500

    memory: Override C++14 delete operators as well

commit 896296632a043b112d731b97ab7b8a763ec5fc3f
Author: Michael Altizer <mialtize@cisco.com>
Date:   Wed Mar 7 12:28:58 2018 -0500

    extra: Fix const cast compiler warnings

commit a2c65aefc52007d04902b5fe6e17a49247f7c64e
Author: Jonathan McDowell <j.mcdowell@titan-ic.com>
Date:   Tue Feb 27 18:03:16 2018 +0000

    Update CMake config to use GNUInstallDirs and match automake

    There is a disparity between the automake + CMake build systems in
    terms of install directories which are used, causing problems when
    building for distributions like Debian with multiarch'd library
    directories. Include the GNUInstallDirs module in the CMake config
    and update install paths as appropriate to correct this.

commit dcaea24c8a7f4a9b8d80d83812218439a3745f84
Author: Michael Altizer <mialtize@cisco.com>
Date:   Thu Mar 1 14:29:35 2018 -0500

    file_api: Fix compiler warning about not overriding destructor in FilePolicy

200 files changed:
CMakeLists.txt
cmake/CheckCXX11Features.cmake [deleted file]
cmake/CheckCXX11Features/cxx11-test-__func__.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-auto.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-auto_fail_compile.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-auto_ret_type.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-class_override_final.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-class_override_final_fail_compile.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-constexpr.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-cstdint.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-decltype.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-initializer_list.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-long_long.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-nullptr.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-nullptr_fail_compile.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-rvalue-references.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-sizeof_member.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-sizeof_member_fail.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-static_assert.cpp [deleted file]
cmake/CheckCXX11Features/cxx11-test-static_assert_fail_compile.cpp [deleted file]
cmake/CodeCoverage.cmake [new file with mode: 0644]
cmake/configure_options.cmake
cmake/create_options.cmake
cmake/create_pkg_config.cmake
cmake/macros.cmake
cmake/packaging_data.cmake
cmake/platforms.cmake
cmake/sanity_checks.cmake
config.cmake.h.in
daqs/CMakeLists.txt
doc/CMakeLists.txt
doc/help.cmake [deleted file]
extra/CMakeLists.txt
extra/src/codecs/cd_eapol/CMakeLists.txt
extra/src/codecs/cd_linux_sll/CMakeLists.txt
extra/src/codecs/cd_null/CMakeLists.txt
extra/src/codecs/cd_pbb/CMakeLists.txt
extra/src/codecs/cd_pflog/CMakeLists.txt
extra/src/codecs/cd_ppp/CMakeLists.txt
extra/src/codecs/cd_raw4/CMakeLists.txt
extra/src/codecs/cd_raw6/CMakeLists.txt
extra/src/codecs/cd_slip/CMakeLists.txt
extra/src/codecs/cd_token_ring/CMakeLists.txt
extra/src/codecs/cd_wlan/CMakeLists.txt
extra/src/daqs/daq_regtest/CMakeLists.txt
extra/src/daqs/daq_socket/CMakeLists.txt
extra/src/inspectors/data_log/CMakeLists.txt
extra/src/inspectors/dpx/CMakeLists.txt
extra/src/inspectors/reg_test/CMakeLists.txt
extra/src/ips_options/find/CMakeLists.txt
extra/src/ips_options/ips_mss/CMakeLists.txt
extra/src/ips_options/ips_mss/Makefile.am
extra/src/ips_options/ips_mss/ips_mss.cc
extra/src/ips_options/ips_pkt_num/CMakeLists.txt
extra/src/ips_options/ips_urg/CMakeLists.txt
extra/src/ips_options/ips_wscale/CMakeLists.txt
extra/src/ips_options/ips_wscale/Makefile.am
extra/src/ips_options/ips_wscale/ips_wscale.cc
extra/src/loggers/alert_ex/CMakeLists.txt
extra/src/loggers/alert_json/CMakeLists.txt
extra/src/loggers/alert_lua/CMakeLists.txt
extra/src/loggers/alert_unixsock/CMakeLists.txt
extra/src/loggers/log_null/CMakeLists.txt
extra/src/search_engines/lowmem/CMakeLists.txt
extra/src/so_rules/sid_18758/CMakeLists.txt
extra/templates/CMakeLists.txt.erb
lua/CMakeLists.txt
src/CMakeLists.txt
src/actions/CMakeLists.txt
src/catch/CMakeLists.txt
src/catch/dev_notes.txt
src/catch/unit_test_main.h [deleted file]
src/codecs/CMakeLists.txt
src/codecs/ip/CMakeLists.txt
src/codecs/link/CMakeLists.txt
src/codecs/misc/CMakeLists.txt
src/codecs/root/CMakeLists.txt
src/connectors/CMakeLists.txt
src/connectors/file_connector/CMakeLists.txt
src/connectors/file_connector/test/CMakeLists.txt
src/connectors/tcp_connector/CMakeLists.txt
src/connectors/tcp_connector/test/CMakeLists.txt
src/control/CMakeLists.txt
src/decompress/CMakeLists.txt
src/decompress/file_decomp.cc
src/detection/CMakeLists.txt
src/events/CMakeLists.txt
src/file_api/CMakeLists.txt
src/file_api/file_policy.h
src/filters/CMakeLists.txt
src/filters/sfrf_test.cc
src/filters/sfthd_test.cc
src/flow/CMakeLists.txt
src/flow/test/CMakeLists.txt
src/framework/CMakeLists.txt
src/hash/CMakeLists.txt
src/hash/test/CMakeLists.txt
src/helpers/CMakeLists.txt
src/helpers/base64_encoder.cc
src/host_tracker/CMakeLists.txt
src/host_tracker/test/CMakeLists.txt
src/ips_options/CMakeLists.txt
src/ips_options/test/CMakeLists.txt
src/latency/CMakeLists.txt
src/log/CMakeLists.txt
src/log/test/CMakeLists.txt
src/log/u2_packet.cc
src/loggers/CMakeLists.txt
src/lua/CMakeLists.txt
src/lua/lua_stack_test.cc
src/main.cc
src/main/CMakeLists.txt
src/main/inclusion.h [deleted file]
src/main/snort_types.h
src/managers/CMakeLists.txt
src/memory/CMakeLists.txt
src/memory/memory_manager.cc
src/mime/CMakeLists.txt
src/network_inspectors/CMakeLists.txt
src/network_inspectors/appid/CMakeLists.txt
src/network_inspectors/appid/detector_plugins/test/CMakeLists.txt
src/network_inspectors/appid/service_plugins/test/CMakeLists.txt
src/network_inspectors/appid/test/CMakeLists.txt
src/network_inspectors/arp_spoof/CMakeLists.txt
src/network_inspectors/binder/CMakeLists.txt
src/network_inspectors/normalize/CMakeLists.txt
src/network_inspectors/packet_capture/CMakeLists.txt
src/network_inspectors/perf_monitor/CMakeLists.txt
src/network_inspectors/port_scan/CMakeLists.txt
src/network_inspectors/reputation/CMakeLists.txt
src/packet_io/CMakeLists.txt
src/packet_io/test/sfdaq_module_test.cc
src/parser/CMakeLists.txt
src/piglet/CMakeLists.txt
src/piglet_plugins/CMakeLists.txt
src/ports/CMakeLists.txt
src/profiler/CMakeLists.txt
src/protocols/CMakeLists.txt
src/pub_sub/CMakeLists.txt
src/search_engines/CMakeLists.txt
src/search_engines/test/CMakeLists.txt
src/search_engines/test/search_tool_test.cc
src/service_inspectors/CMakeLists.txt
src/service_inspectors/back_orifice/CMakeLists.txt
src/service_inspectors/dce_rpc/CMakeLists.txt
src/service_inspectors/dnp3/CMakeLists.txt
src/service_inspectors/dns/CMakeLists.txt
src/service_inspectors/ftp_telnet/CMakeLists.txt
src/service_inspectors/gtp/CMakeLists.txt
src/service_inspectors/http2_inspect/CMakeLists.txt
src/service_inspectors/http2_inspect/test/CMakeLists.txt
src/service_inspectors/http2_inspect/test/http2_flow_data_test.h
src/service_inspectors/http_inspect/CMakeLists.txt
src/service_inspectors/http_inspect/test/CMakeLists.txt
src/service_inspectors/imap/CMakeLists.txt
src/service_inspectors/modbus/CMakeLists.txt
src/service_inspectors/pop/CMakeLists.txt
src/service_inspectors/rpc_decode/CMakeLists.txt
src/service_inspectors/sip/CMakeLists.txt
src/service_inspectors/smtp/CMakeLists.txt
src/service_inspectors/ssh/CMakeLists.txt
src/service_inspectors/ssl/CMakeLists.txt
src/service_inspectors/wizard/CMakeLists.txt
src/sfip/CMakeLists.txt
src/sfip/sfip_test.cc
src/sfrt/CMakeLists.txt
src/sfrt/sfrt_test.cc
src/side_channel/CMakeLists.txt
src/side_channel/test/CMakeLists.txt
src/stream/CMakeLists.txt
src/stream/base/CMakeLists.txt
src/stream/file/CMakeLists.txt
src/stream/icmp/CMakeLists.txt
src/stream/ip/CMakeLists.txt
src/stream/libtcp/CMakeLists.txt
src/stream/tcp/CMakeLists.txt
src/stream/tcp/test/CMakeLists.txt
src/stream/test/CMakeLists.txt
src/stream/udp/CMakeLists.txt
src/stream/user/CMakeLists.txt
src/target_based/CMakeLists.txt
src/time/CMakeLists.txt
src/time/stopwatch_test.cc
src/utils/CMakeLists.txt
src/utils/bitop_test.cc
src/utils/kmap.cc
src/utils/util_jsnorm.cc
src/utils/util_utf.cc
tools/flatbuffers/CMakeLists.txt
tools/snort2lua/CMakeLists.txt
tools/snort2lua/config_states/CMakeLists.txt
tools/snort2lua/data/CMakeLists.txt
tools/snort2lua/data/data_types/CMakeLists.txt
tools/snort2lua/helpers/CMakeLists.txt
tools/snort2lua/keyword_states/CMakeLists.txt
tools/snort2lua/output_states/CMakeLists.txt
tools/snort2lua/preprocessor_states/CMakeLists.txt
tools/snort2lua/rule_states/CMakeLists.txt
tools/u2boat/CMakeLists.txt
tools/u2spewfoo/CMakeLists.txt

index 3bf767d2b5e0f9e8c83eebbd3a865810c9ee90d5..5d76dd49cfffb64a8f0607a7a510edd3470de4a5 100644 (file)
@@ -1,44 +1,50 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.4.3)
 project (snort CXX C)
 
 set (VERSION_MAJOR 3)
 set (VERSION_MINOR 0)
-set (VERSION_BUILD 0)
-set (VERSION
-    "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUILD}")
+set (VERSION_PATCH 0)
+set (VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
 
-set (INCLUDE_SUFFIX "${CMAKE_PROJECT_NAME}")
-set (INCLUDE_INSTALL_PATH "include/${INCLUDE_SUFFIX}")
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
 
-set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+set (CMAKE_C_STANDARD 99)
+set (CMAKE_C_STANDARD_REQUIRED ON)
+set (CMAKE_C_EXTENSIONS ON)
 
-include (cmake/macros.cmake)
-include (cmake/create_options.cmake)
-include (cmake/include_libraries.cmake)
-include (cmake/platforms.cmake)
-include (cmake/configure_options.cmake)
-include (cmake/CheckCXX11Features.cmake)
-#include (cmake/compiler_features.cmake)
-include (cmake/sanity_checks.cmake)
+set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
+# Pull in definitions of various install directories
+include (GNUInstallDirs)
+include (${CMAKE_MODULE_PATH}/macros.cmake)
+include (${CMAKE_MODULE_PATH}/create_options.cmake)
+include (${CMAKE_MODULE_PATH}/include_libraries.cmake)
+include (${CMAKE_MODULE_PATH}/platforms.cmake)
+include (${CMAKE_MODULE_PATH}/configure_options.cmake)
+#include (${CMAKE_MODULE_PATH}/compiler_features.cmake)
+include (${CMAKE_MODULE_PATH}/sanity_checks.cmake)
+
+set (INSTALL_SUFFIX "${CMAKE_PROJECT_NAME}")
+set (INCLUDE_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}/${INSTALL_SUFFIX}")
+set (PLUGIN_INSTALL_PATH "${CMAKE_INSTALL_LIBDIR}/${INSTALL_SUFFIX}")
 
 configure_file (
     "${PROJECT_SOURCE_DIR}/config.cmake.h.in"
     "${PROJECT_BINARY_DIR}/config.h"
-    )
+)
 
 add_definitions( -DHAVE_CONFIG_H )
 
-# CMAKE_CXX_* properties aren't supported in 2.x :(
-# set (CMAKE_CXX_STANDARD 11)
-# set (CMAKE_CXX_STANDARD_REQUIRED ON)
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_COMPILER_FLAGS}")
-
-# FIXIT - there is probably a better way to do this
-set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
-
-# Apply sanitizer compiler and linker flags
-set ( CMAKE_C_FLAGS "${SANITIZER_CXXFLAGS} ${CMAKE_C_FLAGS}" )
-set ( CMAKE_CXX_FLAGS "${SANITIZER_CXXFLAGS} ${CMAKE_CXX_FLAGS}" )
+# Set these after all tests are done but *before* any subdirectories are included
+#  or other targets declared.
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS}")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXX_FLAGS}")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EXTRA_LINKER_FLAGS}")
+set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${EXTRA_LINKER_FLAGS}")
+foreach (EXTRA_LIBRARY IN LISTS EXTRA_LIBRARIES)
+    link_libraries(${EXTRA_LIBRARY})
+endforeach (EXTRA_LIBRARY)
 
 include_directories (${PROJECT_BINARY_DIR})
 include_directories (${PROJECT_SOURCE_DIR})
@@ -46,8 +52,6 @@ include_directories (${PROJECT_SOURCE_DIR})
 if (ENABLE_UNIT_TESTS)
     include(CTest)
     add_custom_target (check COMMAND ${CMAKE_CTEST_COMMAND})
-    add_dependencies (check snort)
-    #add_test (catch_tests ${CMAKE_CURRENT_BINARY_DIR}/src/snort --catch-test all)
 endif (ENABLE_UNIT_TESTS)
 
 add_subdirectory (src)
@@ -56,9 +60,9 @@ add_subdirectory (lua)
 add_subdirectory (doc)
 add_subdirectory (daqs)
 
-# Miscellaneous stuff.  Does NOT directly effect snort's building environment
-include (cmake/packaging_data.cmake)
-include (cmake/create_pkg_config.cmake)
+# Miscellaneous stuff.  Does NOT directly affect Snort's build environment.
+include (${CMAKE_MODULE_PATH}/packaging_data.cmake)
+include (${CMAKE_MODULE_PATH}/create_pkg_config.cmake)
 
 # uninstall target
 configure_file(
@@ -68,3 +72,73 @@ configure_file(
 
 add_custom_target(uninstall
     COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
+
+message("
+-------------------------------------------------------
+${CMAKE_PROJECT_NAME} version ${VERSION}
+
+Install options:
+    prefix:     ${CMAKE_INSTALL_PREFIX}
+    includes:   ${CMAKE_INSTALL_FULL_INCLUDEDIR}/${INSTALL_SUFFIX}
+    plugins:    ${CMAKE_INSTALL_FULL_LIBDIR}/${INSTALL_SUFFIX}
+
+Compiler options:
+    CC:             ${CMAKE_C_COMPILER}
+    CXX:            ${CMAKE_CXX_COMPILER}
+    CFLAGS:         ${CMAKE_C_FLAGS}
+    CXXFLAGS:       ${CMAKE_CXX_FLAGS}
+    EXE_LDFLAGS:    ${CMAKE_EXE_LINKER_FLAGS}
+    MODULE_LDFLAGS: ${CMAKE_MODULE_LINKER_FLAGS}
+
+Feature options:\
+")
+
+if (HAVE_FLATBUFFERS)
+    message("\
+    Flatbuffers:    ON")
+else ()
+    message("\
+    Flatbuffers:    OFF")
+endif ()
+
+if (HAVE_HYPERSCAN)
+    message("\
+    Hyperscan:      ON")
+else ()
+    message("\
+    Hyperscan:      OFF")
+endif ()
+
+if (HAVE_ICONV)
+    message("\
+    ICONV:          ON")
+else ()
+    message("\
+    ICONV:          OFF")
+endif ()
+
+if (HAVE_LZMA)
+    message("\
+    LZMA:           ON")
+else ()
+    message("\
+    LZMA:           OFF")
+endif ()
+
+if (HAVE_SAFEC AND SAFEC_ENABLED)
+    message("\
+    SafeC:          ON")
+else ()
+    message("\
+    SafeC:          OFF")
+endif ()
+
+if (HAVE_UUID)
+    message("\
+    UUID:           ON")
+else ()
+    message("\
+    UUID:           OFF")
+endif ()
+
+message("-------------------------------------------------------\n")
diff --git a/cmake/CheckCXX11Features.cmake b/cmake/CheckCXX11Features.cmake
deleted file mode 100644 (file)
index 50019fc..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-# - Check which parts of the C++11 standard the compiler supports
-#
-# When found it will set the following variables
-#
-#  CXX11_COMPILER_FLAGS         - the compiler flags needed to get C++11 features
-#
-#  HAS_CXX11_AUTO               - auto keyword
-#  HAS_CXX11_AUTO_RET_TYPE      - function declaration with deduced return types
-#  HAS_CXX11_CLASS_OVERRIDE     - override and final keywords for classes and methods
-#  HAS_CXX11_CONSTEXPR          - constexpr keyword
-#  HAS_CXX11_CSTDINT_H          - cstdint header
-#  HAS_CXX11_DECLTYPE           - decltype keyword
-#  HAS_CXX11_FUNC               - __func__ preprocessor constant
-#  HAS_CXX11_INITIALIZER_LIST   - initializer list
-#  HAS_CXX11_LONG_LONG          - long long signed & unsigned types
-#  HAS_CXX11_NULLPTR            - nullptr
-#  HAS_CXX11_RVALUE_REFERENCES  - rvalue references
-#  HAS_CXX11_SIZEOF_MEMBER      - sizeof() non-static members
-#  HAS_CXX11_STATIC_ASSERT      - static_assert()
-
-#=============================================================================
-# Copyright 2011,2012 Rolf Eike Beer <eike@sf-mail.de>
-# Copyright 2012 Andreas Weis
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-if (NOT CMAKE_CXX_COMPILER_LOADED)
-    message(FATAL_ERROR "CheckCXX11Features modules only works if language CXX is enabled")
-endif ()
-
-cmake_minimum_required(VERSION 2.8.3)
-
-#
-### Check for needed compiler flags
-#
-include(CheckCXXCompilerFlag)
-check_cxx_compiler_flag("-std=c++11" _HAS_CXX11_FLAG)
-if (NOT _HAS_CXX11_FLAG)
-    check_cxx_compiler_flag("-std=c++0x" _HAS_CXX0X_FLAG)
-endif ()
-
-if (_HAS_CXX11_FLAG)
-    set(CXX11_COMPILER_FLAGS "-std=c++11")
-elseif (_HAS_CXX0X_FLAG)
-    set(CXX11_COMPILER_FLAGS "-std=c++0x")
-endif ()
-
-function(cxx11_check_feature FEATURE_NAME RESULT_VAR)
-    if (NOT DEFINED ${RESULT_VAR})
-        set(_bindir "${CMAKE_CURRENT_BINARY_DIR}/cxx11_${FEATURE_NAME}")
-
-        set(_SRCFILE_BASE ${CMAKE_CURRENT_LIST_DIR}/CheckCXX11Features/cxx11-test-${FEATURE_NAME})
-        set(_LOG_NAME "\"${FEATURE_NAME}\"")
-        message(STATUS "Checking C++11 support for ${_LOG_NAME}")
-
-        set(_SRCFILE "${_SRCFILE_BASE}.cpp")
-        set(_SRCFILE_FAIL "${_SRCFILE_BASE}_fail.cpp")
-        set(_SRCFILE_FAIL_COMPILE "${_SRCFILE_BASE}_fail_compile.cpp")
-
-        if (CROSS_COMPILING)
-            try_compile(${RESULT_VAR} "${_bindir}" "${_SRCFILE}"
-                        COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
-            if (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
-                try_compile(${RESULT_VAR} "${_bindir}_fail" "${_SRCFILE_FAIL}"
-                            COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
-            endif (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
-        else (CROSS_COMPILING)
-            try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
-                    "${_bindir}" "${_SRCFILE}"
-                    COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
-            if (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
-                set(${RESULT_VAR} TRUE)
-            else (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
-                set(${RESULT_VAR} FALSE)
-            endif (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
-            if (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
-                try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
-                        "${_bindir}_fail" "${_SRCFILE_FAIL}"
-                         COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
-                if (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
-                    set(${RESULT_VAR} TRUE)
-                else (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
-                    set(${RESULT_VAR} FALSE)
-                endif (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
-            endif (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
-        endif (CROSS_COMPILING)
-        if (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
-            try_compile(_TMP_RESULT "${_bindir}_fail_compile" "${_SRCFILE_FAIL_COMPILE}"
-                        COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
-            if (_TMP_RESULT)
-                set(${RESULT_VAR} FALSE)
-            else (_TMP_RESULT)
-                set(${RESULT_VAR} TRUE)
-            endif (_TMP_RESULT)
-        endif (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
-
-        if (${RESULT_VAR})
-            message(STATUS "Checking C++11 support for ${_LOG_NAME}: works")
-        else (${RESULT_VAR})
-            message(STATUS "Checking C++11 support for ${_LOG_NAME}: not supported")
-        endif (${RESULT_VAR})
-        set(${RESULT_VAR} ${${RESULT_VAR}} CACHE INTERNAL "C++11 support for ${_LOG_NAME}")
-    endif (NOT DEFINED ${RESULT_VAR})
-endfunction(cxx11_check_feature)
-
-cxx11_check_feature("__func__" HAS_CXX11_FUNC)
-cxx11_check_feature("auto" HAS_CXX11_AUTO)
-cxx11_check_feature("auto_ret_type" HAS_CXX11_AUTO_RET_TYPE)
-cxx11_check_feature("class_override_final" HAS_CXX11_CLASS_OVERRIDE)
-cxx11_check_feature("constexpr" HAS_CXX11_CONSTEXPR)
-cxx11_check_feature("cstdint" HAS_CXX11_CSTDINT_H)
-cxx11_check_feature("decltype" HAS_CXX11_DECLTYPE)
-cxx11_check_feature("initializer_list" HAS_CXX11_INITIALIZER_LIST)
-cxx11_check_feature("long_long" HAS_CXX11_LONG_LONG)
-cxx11_check_feature("nullptr" HAS_CXX11_NULLPTR)
-cxx11_check_feature("rvalue-references" HAS_CXX11_RVALUE_REFERENCES)
-cxx11_check_feature("sizeof_member" HAS_CXX11_SIZEOF_MEMBER)
-cxx11_check_feature("static_assert" HAS_CXX11_STATIC_ASSERT)
diff --git a/cmake/CheckCXX11Features/cxx11-test-__func__.cpp b/cmake/CheckCXX11Features/cxx11-test-__func__.cpp
deleted file mode 100644 (file)
index 3bfd8a8..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-int main(void)
-{
-       if (!__func__)
-               return 1;
-       if (!(*__func__))
-               return 1;
-       return 0;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-auto.cpp b/cmake/CheckCXX11Features/cxx11-test-auto.cpp
deleted file mode 100644 (file)
index 948648e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-
-int main()
-{
-       auto i = 5;
-       auto f = 3.14159f;
-       auto d = 3.14159;
-       bool ret = (
-               (sizeof(f) < sizeof(d)) &&
-               (sizeof(i) == sizeof(int))
-       );
-       return ret ? 0 : 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-auto_fail_compile.cpp b/cmake/CheckCXX11Features/cxx11-test-auto_fail_compile.cpp
deleted file mode 100644 (file)
index 3c0e3f2..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-int main(void)
-{
-       // must fail because there is no initializer
-       auto i;
-
-       return 0;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-auto_ret_type.cpp b/cmake/CheckCXX11Features/cxx11-test-auto_ret_type.cpp
deleted file mode 100644 (file)
index 937b683..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-auto foo(int i) -> int {
-       return i - 1;
-}
-
-int main()
-{
-       return foo(1);
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-class_override_final.cpp b/cmake/CheckCXX11Features/cxx11-test-class_override_final.cpp
deleted file mode 100644 (file)
index f5870b1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-class base {
-public:
-    virtual int foo(int a)
-     { return 4 + a; }
-    int bar(int a) final
-     { return a - 2; }
-};
-
-class sub final : public base {
-public:
-    virtual int foo(int a) override
-     { return 8 + 2 * a; };
-};
-
-int main(void)
-{
-    base b;
-    sub s;
-
-    return (b.foo(2) * 2 == s.foo(2)) ? 0 : 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-class_override_final_fail_compile.cpp b/cmake/CheckCXX11Features/cxx11-test-class_override_final_fail_compile.cpp
deleted file mode 100644 (file)
index bc00b27..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-class base {
-public:
-    virtual int foo(int a)
-     { return 4 + a; }
-    virtual int bar(int a) final
-     { return a - 2; }
-};
-
-class sub final : public base {
-public:
-    virtual int foo(int a) override
-     { return 8 + 2 * a; };
-    virtual int bar(int a)
-     { return a; }
-};
-
-class impossible : public sub { };
-
-int main(void)
-{
-    base b;
-    sub s;
-
-    return 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-constexpr.cpp b/cmake/CheckCXX11Features/cxx11-test-constexpr.cpp
deleted file mode 100644 (file)
index ed62451..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-constexpr int square(int x)
-{
-       return x*x;
-}
-
-constexpr int the_answer()
-{
-       return 42;
-}
-
-int main()
-{
-       int test_arr[square(3)];
-       bool ret = (
-               (square(the_answer()) == 1764) &&
-               (sizeof(test_arr)/sizeof(test_arr[0]) == 9)
-       );
-       return ret ? 0 : 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-cstdint.cpp b/cmake/CheckCXX11Features/cxx11-test-cstdint.cpp
deleted file mode 100644 (file)
index ca2c72d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <cstdint>
-
-int main()
-{
-       bool test =
-               (sizeof(int8_t) == 1) &&
-               (sizeof(int16_t) == 2) &&
-               (sizeof(int32_t) == 4) &&
-               (sizeof(int64_t) == 8);
-       return test ? 0 : 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-decltype.cpp b/cmake/CheckCXX11Features/cxx11-test-decltype.cpp
deleted file mode 100644 (file)
index 0dbb1cc..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-bool check_size(int i)
-{
-       return sizeof(int) == sizeof(decltype(i));
-}
-
-int main()
-{
-       bool ret = check_size(42);
-       return ret ? 0 : 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-initializer_list.cpp b/cmake/CheckCXX11Features/cxx11-test-initializer_list.cpp
deleted file mode 100644 (file)
index 35e6c38..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <vector>
-
-class seq {
-public:
-    seq(std::initializer_list<int> list);
-
-    int length() const;
-private:
-    std::vector<int> m_v;
-};
-
-seq::seq(std::initializer_list<int> list)
-    : m_v(list)
-{
-}
-
-int seq::length() const
-{
-    return m_v.size();
-}
-
-int main(void)
-{
-    seq a = {18, 20, 2, 0, 4, 7};
-
-    return (a.length() == 6) ? 0 : 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-long_long.cpp b/cmake/CheckCXX11Features/cxx11-test-long_long.cpp
deleted file mode 100644 (file)
index 0911127..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-int main(void)
-{
-       long long l;
-       unsigned long long ul;
-
-       return ((sizeof(l) >= 8) && (sizeof(ul) >= 8)) ? 0 : 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-nullptr.cpp b/cmake/CheckCXX11Features/cxx11-test-nullptr.cpp
deleted file mode 100644 (file)
index 9f41071..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-int main(void)
-{
-       void *v = nullptr;
-
-       return v ? 1 : 0;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-nullptr_fail_compile.cpp b/cmake/CheckCXX11Features/cxx11-test-nullptr_fail_compile.cpp
deleted file mode 100644 (file)
index 6a002bc..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-int main(void)
-{
-       int i = nullptr;
-
-       return 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-rvalue-references.cpp b/cmake/CheckCXX11Features/cxx11-test-rvalue-references.cpp
deleted file mode 100644 (file)
index e6e7e5a..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <cassert>
-
-class rvmove {
-public:
-   void *ptr;
-   char *array;
-
-   rvmove()
-    : ptr(0),
-    array(new char[10])
-   {
-     ptr = this;
-   }
-
-   rvmove(rvmove &&other)
-    : ptr(other.ptr),
-    array(other.array)
-   {
-    other.array = 0;
-    other.ptr = 0;
-   }
-
-   ~rvmove()
-   {
-    assert(((ptr != 0) && (array != 0)) || ((ptr == 0) && (array == 0)));
-    delete[] array;
-   }
-
-   rvmove &operator=(rvmove &&other)
-   {
-     delete[] array;
-     ptr = other.ptr;
-     array = other.array;
-     other.array = 0;
-     other.ptr = 0;
-     return *this;
-   }
-
-   static rvmove create()
-   {
-     return rvmove();
-   }
-private:
-  rvmove(const rvmove &);
-  rvmove &operator=(const rvmove &);
-};
-
-int main()
-{
-  rvmove mine;
-  if (mine.ptr != &mine)
-    return 1;
-  mine = rvmove::create();
-  if (mine.ptr == &mine)
-    return 1;
-  return 0;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-sizeof_member.cpp b/cmake/CheckCXX11Features/cxx11-test-sizeof_member.cpp
deleted file mode 100644 (file)
index 4902fc7..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-struct foo {
-       char bar;
-       int baz;
-};
-
-int main(void)
-{
-       bool ret = (
-               (sizeof(foo::bar) == 1) &&
-               (sizeof(foo::baz) >= sizeof(foo::bar)) &&
-               (sizeof(foo) >= sizeof(foo::bar) + sizeof(foo::baz))
-       );
-       return ret ? 0 : 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-sizeof_member_fail.cpp b/cmake/CheckCXX11Features/cxx11-test-sizeof_member_fail.cpp
deleted file mode 100644 (file)
index 0348c2c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-struct foo {
-       int baz;
-       double bar;
-};
-
-int main(void)
-{
-       return (sizeof(foo::bar) == 4) ? 0 : 1;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-static_assert.cpp b/cmake/CheckCXX11Features/cxx11-test-static_assert.cpp
deleted file mode 100644 (file)
index 47c2fef..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-int main(void)
-{
-       static_assert(0 < 1, "your ordering of integers is screwed");
-       return 0;
-}
diff --git a/cmake/CheckCXX11Features/cxx11-test-static_assert_fail_compile.cpp b/cmake/CheckCXX11Features/cxx11-test-static_assert_fail_compile.cpp
deleted file mode 100644 (file)
index 362fcdd..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-int main(void)
-{
-       static_assert(1 < 0, "your ordering of integers is screwed");
-       return 0;
-}
diff --git a/cmake/CodeCoverage.cmake b/cmake/CodeCoverage.cmake
new file mode 100644 (file)
index 0000000..1bf764d
--- /dev/null
@@ -0,0 +1,36 @@
+#
+# Loosely based on:
+#   https://raw.githubusercontent.com/peti/autoconf-archive/master/m4/ax_code_coverage.m4
+#       - and -
+#   https://raw.githubusercontent.com/bilke/cmake-modules/master/CodeCoverage.cmake
+#
+
+find_program( GCOV_PATH gcov )
+
+if(NOT GCOV_PATH)
+    message(FATAL_ERROR "gcov not found! Aborting...")
+endif()
+
+if("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang")
+    if("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 3)
+        message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...")
+    endif()
+elseif(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+    message(FATAL_ERROR "Compiler is not GNU gcc! Aborting...")
+endif()
+
+set(COVERAGE_COMPILER_FLAGS "-O0 -g -fprofile-arcs -ftest-coverage")
+
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
+    set(COVERAGE_LINKER_FLAGS "")
+    set(COVERAGE_LIBRARIES "gcov")
+else()
+    set(COVERAGE_LINKER_FLAGS "--coverage")
+    set(COVERAGE_LIBRARIES "")
+endif()
+
+mark_as_advanced(
+    COVERAGE_COMPILER_FLAGS
+    COVERAGE_LINKER_FLAGS
+    COVERAGE_LIBRARIES
+)
index 0513ca6046ffa0a1f24a25b9a2705b404869bf89..b245dce0ebbdddacb1a87e398e1823e5fff37dff 100644 (file)
@@ -42,42 +42,40 @@ if ( ENABLE_HARDENED_BUILD )
 
     check_cxx_compiler_flag ( "-Wdate-time" HAS_WDATE_TIME_CPPFLAG )
     if ( HAS_WDATE_TIME_CPPFLAG )
-        set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdate-time" )
+        set ( HARDENED_CXX_FLAGS "${HARDENED_CXX_FLAGS} -Wdate-time" )
     endif ()
 
     check_cxx_compiler_flag ( "-D_FORTIFY_SOURCE=2" HAS_FORTIFY_SOURCE_2_CPPFLAG )
     if ( HAS_FORTIFY_SOURCE_2_CPPFLAG )
-        set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORTIFY_SOURCE=2" )
+        set ( HARDENED_CXX_FLAGS "${HARDENED_CXX_FLAGS} -D_FORTIFY_SOURCE=2" )
     endif ()
 
     check_cxx_compiler_flag ( "-fstack-protector-strong" HAS_FSTACK_PROTECTOR_STRONG_CXXFLAG )
     if ( HAS_FSTACK_PROTECTOR_STRONG_CXXFLAG )
-        set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong" )
+        set ( HARDENED_CXX_FLAGS "${HARDENED_CXX_FLAGS} -fstack-protector-strong" )
     endif ()
 
     check_cxx_compiler_flag ( "-Wformat" HAS_WFORMAT_CXXFLAG )
     if ( HAS_WFORMAT_CXXFLAG )
-        set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat" )
+        set ( HARDENED_CXX_FLAGS "${HARDENED_CXX_FLAGS} -Wformat" )
     endif ()
 
     check_cxx_compiler_flag ( "-Werror=format-security" HAS_WERROR_FORMAT_SECURITY_CXXFLAG )
     if ( HAS_WERROR_FORMAT_SECURITY_CXXFLAG )
-        set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=format-security" )
+        set ( HARDENED_CXX_FLAGS "${HARDENED_CXX_FLAGS} -Werror=format-security" )
     endif ()
 
     set ( CMAKE_REQUIRED_FLAGS "-Wl,-z,relro" )
     check_cxx_compiler_flag ( "" HAS_ZRELRO_LDFLAG )
     if ( HAS_ZRELRO_LDFLAG )
-        set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro" )
-        set ( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro" )
+        set ( HARDENED_LINKER_FLAGS "${HARDENED_LINKER_FLAGS} -Wl,-z,relro" )
     endif ()
     unset ( CMAKE_REQUIRED_FLAGS )
 
     set ( CMAKE_REQUIRED_FLAGS "-Wl,-z,now" )
     check_cxx_compiler_flag ( "-Wl,-z,now" HAS_ZNOW_LDFLAG )
     if ( HAS_ZNOW_LDFLAG )
-        set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,now" )
-        set ( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,now" )
+        set ( HARDENED_LINKER_FLAGS "${HARDENED_LINKER_FLAGS} -Wl,-z,now" )
     endif ()
     unset ( CMAKE_REQUIRED_FLAGS )
 
@@ -86,9 +84,8 @@ endif ( ENABLE_HARDENED_BUILD )
 if ( ENABLE_PIE )
     check_cxx_compiler_flag ( "-fPIE -pie" HAS_PIE_SUPPORT )
     if ( HAS_PIE_SUPPORT )
-        set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE" )
-        set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie" )
-        set ( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fPIE -pie" )
+        set ( HARDENED_CXX_FLAGS "${HARDENED_CXX_FLAGS} -fPIE" )
+        set ( HARDENED_LINKER_FLAGS "${HARDENED_LINKER_FLAGS} -fPIE -pie" )
     endif ()
 endif ( ENABLE_PIE )
 
@@ -102,59 +99,60 @@ set ( DEBUG_MSGS ${ENABLE_DEBUG_MSGS} )
 
 set ( DEBUG ${ENABLE_DEBUG} )
 if ( ENABLE_DEBUG )
-    set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g" )
+    set ( DEBUGGING_C_FLAGS "${DEBUGGING_C_FLAGS} -g -DDEBUG" )
 endif ( ENABLE_DEBUG )
 
 if ( ENABLE_GDB )
-    set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -ggdb" )
+    set ( DEBUGGING_C_FLAGS "${DEBUGGING_C_FLAGS} -g -ggdb" )
 endif ( ENABLE_GDB )
 
 if ( ENABLE_PROFILE AND CMAKE_COMPILER_IS_GNUCXX )
-    set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg" )
+    set ( DEBUGGING_C_FLAGS "${DEBUGGING_C_FLAGS} -pg" )
 endif ( ENABLE_PROFILE AND CMAKE_COMPILER_IS_GNUCXX )
 
 if ( ENABLE_ADDRESS_SANITIZER )
-    set ( SANITIZER_FLAGS "-fsanitize=address -fno-omit-frame-pointer" )
+    set ( SANITIZER_CXX_FLAGS "-fsanitize=address -fno-omit-frame-pointer" )
 
-    set ( CMAKE_REQUIRED_FLAGS "${SANITIZER_LDFLAGS} -fsanitize=address" )
-    check_cxx_compiler_flag ( "${SANITIZER_FLAGS}" HAS_SANITIZE_ADDRESS_LDFLAG )
+    set ( CMAKE_REQUIRED_FLAGS "${SANITIZER_LINKER_FLAGS} -fsanitize=address" )
+    check_cxx_compiler_flag ( "${SANITIZER_CXX_FLAGS}" HAS_SANITIZE_ADDRESS_LDFLAG )
     if ( HAS_SANITIZE_ADDRESS_LDFLAG )
-        set ( SANITIZER_LDFLAGS "${SANITIZER_LDFLAGS} -fsanitize=address" )
-    endif ()
-    unset ( CMAKE_REQUIRED_FLAGS )
-
-    set ( CMAKE_REQUIRED_FLAGS "${SANITIZER_LDFLAGS} -static-libasan" )
-    check_cxx_compiler_flag ( "${SANITIZER_FLAGS}" HAS_STATIC_LIBASAN_LDFLAG )
-    if ( HAS_STATIC_LIBASAN_LDFLAG )
-        set ( SANITIZER_LDFLAGS "${SANITIZER_LDFLAGS} -static-libasan" )
+        set ( SANITIZER_LINKER_FLAGS "${SANITIZER_LINKER_FLAGS} -fsanitize=address" )
     endif ()
     unset ( CMAKE_REQUIRED_FLAGS )
 endif ( ENABLE_ADDRESS_SANITIZER )
 
 if ( ENABLE_THREAD_SANITIZER )
-    set ( SANITIZER_CXXFLAGS "-fsanitize=thread -fno-omit-frame-pointer" )
+    set ( SANITIZER_CXX_FLAGS "-fsanitize=thread -fno-omit-frame-pointer" )
 
-    set ( CMAKE_REQUIRED_FLAGS "${SANITIZER_LDFLAGS} -fsanitize=thread" )
-    check_cxx_compiler_flag ( "${SANITIZER_CXXFLAGS}" HAS_SANITIZE_THREAD_LDFLAG )
+    set ( CMAKE_REQUIRED_FLAGS "${SANITIZER_LINKER_FLAGS} -fsanitize=thread" )
+    check_cxx_compiler_flag ( "${SANITIZER_CXX_FLAGS}" HAS_SANITIZE_THREAD_LDFLAG )
     if ( HAS_SANITIZE_THREAD_LDFLAG )
-        set ( SANITIZER_LDFLAGS "${SANITIZER_LDFLAGS} -fsanitize=thread" )
-    endif ()
-    unset ( CMAKE_REQUIRED_FLAGS )
-
-    set ( CMAKE_REQUIRED_FLAGS "${SANITIZER_LDFLAGS} -static-libtsan" )
-    check_cxx_compiler_flag ( "${SANITIZER_CXXFLAGS}" HAS_STATIC_LIBTSAN_LDFLAG )
-    if ( HAS_STATIC_LIBTSAN_LDFLAG )
-        set ( SANITIZER_LDFLAGS "${SANITIZER_LDFLAGS} -static-libtsan" )
+        set ( SANITIZER_LINKER_FLAGS "${SANITIZER_LINKER_FLAGS} -fsanitize=thread" )
     endif ()
     unset ( CMAKE_REQUIRED_FLAGS )
 endif ( ENABLE_THREAD_SANITIZER )
 
 if ( ENABLE_CODE_COVERAGE )
-    set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -fprofile-arcs -ftest-coverage" )
-    set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g -fprofile-arcs -ftest-coverage" )
-
-    if ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" )
-        set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov" )
-    endif ()
+    include(${CMAKE_MODULE_PATH}/CodeCoverage.cmake)
 endif ( ENABLE_CODE_COVERAGE )
 
+
+# Accumulate extra flags and libraries
+#[[
+message("
+    HARDENED_CXX_FLAGS = ${HARDENED_CXX_FLAGS}
+    HARDENED_LINKER_FLAGS = ${HARDENED_LINKER_FLAGS}
+    DEBUGGING_C_FLAGS = ${DEBUGGING_C_FLAGS}
+    SANITIZER_CXX_FLAGS = ${SANITIZER_CXX_FLAGS}
+    SANITIZER_LINKER_FLAGS = ${SANITIZER_LINKER_FLAGS}
+    COVERAGE_COMPILER_FLAGS = ${COVERAGE_COMPILER_FLAGS}
+    COVERAGE_LINKER_FLAGS = ${COVERAGE_LINKER_FLAGS}
+    COVERAGE_LIBRARIES = ${COVERAGE_LIBRARIES}
+")
+]]
+set ( EXTRA_C_FLAGS "${EXTRA_C_FLAGS} ${HARDENED_CXX_FLAGS} ${DEBUGGING_C_FLAGS} ${SANITIZER_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}" )
+set ( EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} ${HARDENED_CXX_FLAGS} ${DEBUGGING_C_FLAGS} ${SANITIZER_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}" )
+set ( EXTRA_LINKER_FLAGS "${EXTRA_LINKER_FLAGS} ${HARDENED_LINKER_FLAGS} ${SANITIZER_LINKER_FLAGS} ${COVERAGE_LINKER_FLAGS}" )
+foreach (EXTRA_LIBRARY IN LISTS COVERAGE_LIBRARIES)
+    list ( APPEND EXTRA_LIBRARIES ${EXTRA_LIBRARY} )
+endforeach ()
index d4a743a995ad3b1709bcc5242490e8210cc8c9a0..d88f480efa070296c8bbd7e41e21066ec7fbe92f 100644 (file)
@@ -63,7 +63,3 @@ set (
     SIGNAL_SNORT_READ_ATTR_TBL "SIGURG"
     CACHE STRING "set the SNORT_READ_ATTR_TBL signal (must be a valid integer or signal name)"
 )
-
-#Setting default directories...appended to INSTALL_PREFIX unless a full path is provided
-set ( SNORT_DATA_DIR share/doc/${CMAKE_PROJECT_NAME} )
-
index 4e92841b3bce3c1de58527b7362deba9138b59e5..098d0534fda6048813ea7aefd713899d0352eb4c 100644 (file)
@@ -5,7 +5,7 @@
 set(prefix "${CMAKE_INSTALL_PREFIX}")
 set(exec_prefix "\${prefix}")
 set(bindir "\${exec_prefix}/bin")
-set(libdir "\${exec_prefix}/lib")
+set(libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
 set(includedir "\${prefix}/include")
 set(datarootdir "\${prefix}/share")
 set(datadir "\${datarootdir}")
@@ -69,5 +69,5 @@ configure_file(
 )
 
 install (FILES ${CMAKE_BINARY_DIR}/snort.pc
-    DESTINATION "lib/pkgconfig/"
+    DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig/"
 )
index 6a7358a00cd2b7a69a0caebd94bf60cee009aabb..3e86dbd756bfba211e8c83af39702212056f520d 100644 (file)
@@ -24,18 +24,19 @@ macro (add_dynamic_module libname install_path)
     install (
         TARGETS ${libname}
         LIBRARY
-            DESTINATION "lib/${CMAKE_PROJECT_NAME}/${install_path}"
+            DESTINATION "${PLUGIN_INSTALL_PATH}/${install_path}"
     )
 endmacro (add_dynamic_module)
 
 
-#anything following testname is assumed to be a link dependency
-macro (add_cpputest testname)
+function (add_cpputest testname)
     if ( ENABLE_UNIT_TESTS )
-        add_executable (${testname} EXCLUDE_FROM_ALL ${testname}.cc)
-        target_include_directories (${testname} PRIVATE ${CPPUTEST_INCLUDE_DIR})
-        target_link_libraries (${testname} ${CPPUTEST_LIBRARIES} ${ARGN})
-        add_test (${testname} ${testname})
-        add_dependencies ( check ${testname} )
+        set(multiValueArgs SOURCES LIBS)
+        cmake_parse_arguments(CppUTest "" "" "${multiValueArgs}" ${ARGN})
+        add_executable(${testname} EXCLUDE_FROM_ALL ${testname}.cc ${CppUTest_SOURCES})
+        target_include_directories(${testname} PRIVATE ${CPPUTEST_INCLUDE_DIR})
+        target_link_libraries(${testname} ${CPPUTEST_LIBRARIES} ${CppUTest_LIBS})
+        add_test(${testname} ${testname})
+        add_dependencies(check ${testname})
     endif ( ENABLE_UNIT_TESTS )
-endmacro (add_cpputest)
+endfunction (add_cpputest)
index 87c164e1124f193e6020e331ba728d1de151d79c..dcfe1a1704d4c8ac87cba8b78e88aefd2e3960a6 100644 (file)
@@ -6,7 +6,7 @@ set (CPACK_PACKAGE_NAME "snort")
 set (CPACK_PACKAGE_VENDOR "Cisco")
 set (CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
 set (CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
-set (CPACK_PACKAGE_VERSION_PATCH "${VERSION_BUILD}-${VERSION_RELEASE}")
+set (CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}")
 set (CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/doc/images/snort.png")
 set (CPACK_PACKAGE_INSTALL_DIRECTORY "snort")
 set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
index c780f55da7fa28e9e6c368da19232449cfaea1c0..14b2456617aab1972d4912a352090847311554a6 100644 (file)
@@ -11,15 +11,16 @@ endif()
 
 set (CMAKE_SKIP_RPATH ON)
 
-
-if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
-    if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.8")
-        message(FATAL_ERROR "G++ version 4.8 or greater required")
+if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
+    set(GNUCXX_MINVER "4.8.1")
+    message(STATUS "g++ version ${CMAKE_CXX_COMPILER_VERSION}")
+    if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS GNUCXX_MINVER)
+        message(FATAL_ERROR "A minimum of g++ ${GNUCXX_MINVER} is required for C++11 support")
     endif()
 endif()
 
 
-# the Clang compiler on MacOS X may need the c++ library explicityly specified
+# the Clang compiler on MacOS X may need the c++ library explicitly specified
 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
     if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
@@ -30,12 +31,18 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
     endif()
 endif()
 
-
+include(CheckCCompilerFlag)
 include(CheckCXXCompilerFlag)
 
-set (CMAKE_REQUIRED_FLAGS "-fvisibility=hidden")
-check_cxx_compiler_flag (${CMAKE_REQUIRED_FLAGS} HAVE_VISIBILITY)
-if (HAVE_VISIBILITY)
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
-endif ()
-unset(CMAKE_REQUIRED_FLAGS)
+CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAS_C_HIDDEN)
+if (HAS_C_HIDDEN)
+    set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -fvisibility=hidden")
+    set(HAVE_VISIBILITY 1)
+endif()
+
+CHECK_CXX_COMPILER_FLAG(-fvisibility=hidden HAS_CXX_HIDDEN)
+if (HAS_CXX_HIDDEN)
+    set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -fvisibility=hidden")
+    set(HAVE_VISIBILITY 1)
+endif()
+
index be515991996f86dd2ca151bfbd2e98cbf7388091..ace993297ffcb26d9af7b3375d552532b60505dd 100644 (file)
@@ -6,107 +6,17 @@ include(CheckLibraryExists)
 include(CheckCXXSourceCompiles)
 
 
-#UNCONVERTED AUTOTOOL OPTION
-
-#AC_FUNC_ALLOCA
-
-
 include (TestBigEndian)
 test_big_endian(WORDS_BIGENDIAN)
 
 
-#check include files
-check_include_file_cxx("arpa/inet.h" HAVE_ARPA_INET_H)
-check_include_file_cxx("fcntl.h" HAVE_FCNTL_H)
-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("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)
-check_include_file_cxx("stdlib.h" HAVE_STDLIB_H)
-check_include_file_cxx("string.h" HAVE_STRING_H)
-check_include_file_cxx("strings.h" HAVE_STRINGS_H)
-check_include_file_cxx("sys/socket.h" HAVE_SYS_SOCKET_H)
-check_include_file_cxx("sys/time.h" HAVE_SYS_TIME_H)
-check_include_file_cxx("syslog.h" HAVE_SYSLOG_H)
-check_include_file_cxx("unistd.h" HAVE_UNISTD_H)
-check_include_file_cxx("wchar.h" HAVE_WCHAR_H)
-
-
-
-# UNCONVERTED AUTOTOOL OPTIONS
-
-#AC_FUNC_MALLOC
-#AC_FUNC_REALLOC
-#AC_FUNC_STRERROR_R
-#AC_FUNC_STRTOD
-
-
-set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES} unistd.h")
-check_function_exists(chown HAVE_CHOWN)
-check_function_exists(fork HAVE_WORKING_FORK)
-check_function_exists(vfork HAVE_WORKING_VFORK)
-check_function_exists(malloc HAVE_FORK)
-
-
-check_function_exists(endgrent HAVE_ENDGRENT)
-check_function_exists(endpwent HAVE_ENDPWENT)
-check_function_exists(ftruncate HAVE_FTRUNCATE)
-check_function_exists(getcwd HAVE_GETCWD)
-check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
-check_function_exists(inet_ntoa HAVE_INET_NTOA)
-check_function_exists(isascii HAVE_ISASCII)
-check_function_exists(localtime_r HAVE_LOCALTIME_R)
-check_function_exists(memchr HAVE_MEMCHR)
-check_function_exists(memmove HAVE_MEMMOVE)
-check_function_exists(memset HAVE_MEMSET)
-check_function_exists(mkdir HAVE_MKDIR)
-check_function_exists(select HAVE_SELECT)
-check_function_exists(socket HAVE_SOCKET)
-check_function_exists(strcasecmp HAVE_STRCASECMP)
-check_function_exists(strchr HAVE_STRCHR)
-check_function_exists(strerror HAVE_STRERROR)
-check_function_exists(strncasecmp HAVE_STRNCASECMP)
-check_function_exists(strrchr HAVE_STRRCHR)
-check_function_exists(strstr HAVE_STRSTR)
-check_function_exists(strtol HAVE_STRTOL)
-check_function_exists(strtoul HAVE_STRTOUL)
-
-set (CMAKE_REQUIRED_INCLUDES)
-
-
-
-
 #--------------------------------------------------------------------------
 # Checks for typedefs, structures, and compiler characteristics.
 #--------------------------------------------------------------------------
 
-check_type_size(int8_t INT8_T)
-check_type_size(int16_t INT16_T)
-check_type_size(int32_t INT32_T)
-check_type_size(int64_t INT64_T)
-check_type_size(uint8_t UINT8_T)
-check_type_size(uint16_t UINT16_T)
-check_type_size(uint32_t UINT32_T)
-check_type_size(uint64_t UINT64_T)
-check_type_size("char" SIZEOF_CHAR)
-check_type_size("short" SIZEOF_SHORT)
-check_type_size("int" SIZEOF_INT)
-check_type_size("unsigned int" SIZEOF_UNSIGNED_INT)
 check_type_size("long int" SIZEOF_LONG_INT)
 check_type_size("unsigned long int" SIZEOF_UNSIGNED_LONG_INT)
-check_type_size("long long int" SIZEOF_LONG_LONG_INT)
-check_type_size("unsigned long long int" SIZEOF_UNSIGNED_LONG_LONG_INT)
-
 
-check_type_size("uid_t" UID_T)
-check_type_size("pid_t" PID_T)
-check_type_size("size_t" SIZE_T)
-check_type_size("ssize_t" SSIZE_T)
-check_type_size("mode_t" MODE_T)
 
 # vvvvvvvvv  INLINE TEST vvvvvvvvv
 
index ba08d15880bfb5613265d8591932a1c60ffe3987..417acf9907c4f03b120c2bef4c4cb1f919f95800 100644 (file)
 /* enalbe debug messages */
 #cmakedefine DEBUG_MSGS 1
 
-/* enable debug build */
-#cmakedefine DEBUG 1
-
-/* disable assertions */
-#cmakedefine NDEBUG 1
-
 /* enable profiling */
 #cmakedefine PROFILE 1
 
 
 /*  Print available system types and their sizes */
 
-/* Define to 1 if the system has the type `int16_t'. */
-#cmakedefine HAVE_INT16_T 1
-
-/* Define to 1 if the system has the type `int32_t'. */
-#cmakedefine HAVE_INT32_T 1
-
-/* Define to 1 if the system has the type `int64_t'. */
-#cmakedefine HAVE_INT64_T 1
-
-/* Define to 1 if the system has the type `int8_t'. */
-#cmakedefine HAVE_INT8_T 1
-
-/* Define to 1 if the system has the type `uint16_t'. */
-#cmakedefine HAVE_UINT16_T 1
-
-/* Define to 1 if the system has the type `uint32_t'. */
-#cmakedefine HAVE_UINT32_T 1
-
-/* Define to 1 if the system has the type `uint64_t'. */
-#cmakedefine HAVE_UINT64_T 1
-
-/* Define to 1 if the system has the type `uint8_t'. */
-#cmakedefine HAVE_UINT8_T 1
-
-/* The size of `char', as computed by sizeof. */
-#cmakedefine SIZEOF_CHAR @SIZEOF_CHAR@
-
-/* The size of `int', as computed by sizeof. */
-#cmakedefine SIZEOF_INT @SIZEOF_INT@
-
 /* The size of `long int', as computed by sizeof. */
 #cmakedefine SIZEOF_LONG_INT @SIZEOF_LONG_INT@
 
-/* The size of `long long int', as computed by sizeof. */
-#cmakedefine SIZEOF_LONG_LONG_INT @SIZEOF_LONG_LONG_INT@
-
-/* The size of `short', as computed by sizeof. */
-#cmakedefine SIZEOF_SHORT @SIZEOF_SHORT@
-
-/* The size of `unsigned int', as computed by sizeof. */
-#cmakedefine SIZEOF_UNSIGNED_INT @SIZEOF_UNSIGNED_INT@
-
 /* The size of `unsigned long int', as computed by sizeof. */
 #cmakedefine SIZEOF_UNSIGNED_LONG_INT @SIZEOF_UNSIGNED_LONG_INT@
 
-/* The size of `unsigned long long int', as computed by sizeof. */
-#cmakedefine SIZEOF_UNSIGNED_LONG_LONG_INT @SIZEOF_UNSIGNED_LONG_LONG_INT@
-
-/* Define to `unsigned int' if uid_t is undefined in the system */
-#cmakedefine uid_t unsigned int
-
-/* Define to `unsigned int' if pid_t is undefined in the system */
-#cmakedefine pid_t unsigned int
-
-/* Define to `unsigned int' if size_t is undefined in the system */
-#cmakedefine size_t unsigned int
-
-/* Define to `unsigned int' if ssize_t is undefined in the system */
-#cmakedefine ssize_t int
-
-/* Define to `int' if mode_t is undefined in the system */
-#cmakedefine mode_t int
-
 /* Define if words are big endian */
 #cmakedefine WORDS_BIGENDIAN 1
 
 
 /*  Header file definitions */
 
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#cmakedefine HAVE_ARPA_INET_H 1
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#cmakedefine HAVE_FCNTL_H 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#cmakedefine HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the <libintl.h> header file. */
-#cmakedefine HAVE_LIBINTL_H 1
-
-/* Define to 1 if you have the <limits.h> header file. */
-#cmakedefine HAVE_LIMITS_H 1
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#cmakedefine HAVE_MALLOC_H 1
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#cmakedefine HAVE_NETDB_H 1
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#cmakedefine HAVE_NETINET_IN_H 1
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#cmakedefine HAVE_STDDEF_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#cmakedefine HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#cmakedefine HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#cmakedefine HAVE_STRING_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#cmakedefine HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <syslog.h> header file. */
-#cmakedefine HAVE_SYSLOG_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#cmakedefine HAVE_SYS_SOCKET_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#cmakedefine HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#cmakedefine HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the <wchar.h> header file. */
-#cmakedefine HAVE_WCHAR_H 1
-
 /* Define to 1 if you have the <dumbnet.h> header file. */
 #cmakedefine HAVE_DUMBNET_H 1
 
index 8556d7113a68d27134eae2cebedefcdd8f788646..98e67be2260493e7cf4bba501e5012b458313d5e 100644 (file)
@@ -1,13 +1,8 @@
 macro ( add_daq_module libname )
     add_dynamic_module ( ${libname} daqs ${ARGN} )
-    set_target_properties (
-        ${libname}
-        PROPERTIES
-            C_STANDARD 99
-    )
 endmacro ( add_daq_module )
 
-set ( DAQS_INCLUDES daq_user.h )
+set ( DAQS_HEADERS daq_user.h )
 set(
     EXTERNAL_INCLUDES
     ${DAQ_INCLUDE_DIR}
@@ -20,6 +15,6 @@ include_directories ( AFTER ${EXTERNAL_INCLUDES} )
 add_daq_module ( daq_file daq_file.c )
 add_daq_module ( daq_hext daq_hext.c )
 
-install (FILES ${DAQS_INCLUDES}
+install (FILES ${DAQS_HEADERS}
     DESTINATION "${INCLUDE_INSTALL_PATH}/daqs"
 )
index b52eebcfd1ac0a1331fbe1646fec92722f5d460d..f6c1393f2b5a2d168bbdc445590b7f31d0e49003 100644 (file)
@@ -1,4 +1,3 @@
-include ( help.cmake )
 add_custom_target ( snort_manuals ALL )
 
 set (
@@ -80,6 +79,15 @@ set (
     wizard.txt
 )
 
+function ( add_help_command generator_script output_file )
+    add_custom_command (
+        OUTPUT ${output_file}
+        COMMAND ${generator_script} $<TARGET_FILE:snort> ${output_file} $ENV{SNORT_PLUGIN_PATH}
+        DEPENDS snort
+        COMMENT "Documents: building ${output_file} with $ENV{SNORT_PLUGIN_PATH}"
+    )
+endfunction ( add_help_command )
+
 foreach ( output_file ${HELP_SOURCES} )
     add_help_command (
         "${CMAKE_CURRENT_LIST_DIR}/scripts/generate_help.sh"
@@ -220,7 +228,6 @@ if ( MAKE_HTML_DOC )
     list (
         APPEND
         EXTRA_CLEAN
-        "${CMAKE_CURRENT_BINARY_DIR}/snort_manual.html"
         "${CMAKE_CURRENT_BINARY_DIR}/snort_manual.chunked"
         "${CMAKE_CURRENT_BINARY_DIR}/snort_manual.tgz"
     )
@@ -266,12 +273,6 @@ if ( MAKE_TEXT_DOC )
         COMMAND rm -rf ${TEXT_DOC_TMP}
         DEPENDS snort_manual.text
     )
-
-    list (
-        APPEND
-        EXTRA_CLEAN
-        "${CMAKE_CURRENT_BINARY_DIR}/snort_manual.text"
-    )
 endif ( MAKE_TEXT_DOC )
 
 if ( MAKE_PDF_DOC )
@@ -303,12 +304,6 @@ if ( MAKE_PDF_DOC )
         COMMAND rm -rf ${PDF_DOC_TMP}
         DEPENDS snort_manual.pdf
     )
-
-    list (
-        APPEND
-        EXTRA_CLEAN
-        "${CMAKE_CURRENT_BINARY_DIR}/snort_manual.pdf"
-    )
 endif ( MAKE_PDF_DOC )
 
 install (
@@ -316,16 +311,23 @@ install (
     ${BUILT_DIST}
     ${UNBUILT_SOURCES}
     DESTINATION
-    ${SNORT_DATA_DIR}
+    ${CMAKE_INSTALL_DOCDIR}
 )
 
 set (
     EXTRA_CLEAN
     ${EXTRA_CLEAN}
     ${BINARY_DIR_BUILT_SOURCES}
-    ${BINARY_DIR_UNBUILT_SOURCES}
 )
 
+if ( NOT CMAKE_CURRENT_LIST_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR )
+    list (
+        APPEND
+        EXTRA_CLEAN
+        ${BINARY_DIR_UNBUILT_SOURCES}
+    )
+endif ()
+
 if ( EXTRA_CLEAN )
     set_property (
         DIRECTORY
diff --git a/doc/help.cmake b/doc/help.cmake
deleted file mode 100644 (file)
index e3d1d69..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-function ( add_help_command generator_script output_file )
-
-    add_custom_command (
-        OUTPUT ${output_file}
-        COMMAND ${generator_script} $<TARGET_FILE:snort> ${output_file} $ENV{SNORT_PLUGIN_PATH}
-        DEPENDS snort
-        COMMENT "Documents: building ${output_file} with $ENV{SNORT_PLUGIN_PATH}"
-        )
-
-endfunction ( add_help_command )
index 5a6ad907f2155a0d6a8e4d27ddaef9f637742eea..0c930cddfe55e639f41f6dc29fcf8c76618b93e7 100644 (file)
@@ -1,10 +1,21 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project( snort_extra CXX C )
 
 set (EXTRA_VERSION_MAJOR 1)
 set (EXTRA_VERSION_MINOR 0)
 set (EXTRA_VERSION_BUILD 0-a4)
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
+set (CMAKE_C_STANDARD 99)
+set (CMAKE_C_STANDARD_REQUIRED ON)
+set (CMAKE_C_EXTENSIONS ON)
+
+# Pull in definitions of various install directories
+include (GNUInstallDirs)
+
 set (AUTOTOOL_FILES "autom4te.cache;m4;configure.ac;Makefile.am")
 
 set (CPACK_GENERATOR TGZ)
index 0d73167182941b090b5504e2484cff25b12bab81..61ba27e018d21b55ab1c20613fb06733a0f17169 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_eapol CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_eapol PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_eapol
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index bfa2b775625f2fef51b9129937ecbd34cf90ca91..f72b5edb2a682a8a8d344a4e727ddcbd9959896c 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_linux_sll CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_linux_sll PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_linux_sll
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index 46149520fd15b65acd6a0d81a089aa5feace1336..b1beadd618d7eb9a915325d7a236e7ae5f6d1beb 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_null CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_null PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_null
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index ea04807e2e155a4fcc4ff66670f167ccfbb3568a..1e2ff16cb2fa40f7388cfea196b5f11dd5111f15 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_pbb CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_pbb PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_pbb
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index f69de5785f1229a9cbe1d0977284fdf3afb15780..b6fa500caac765dbd28f97166f45a189ea7dafcd 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_pflog CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_pflog PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_pflog
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index 25769040e260aa2b4dbfc1c67f4defdfb0056906..b95faf9a70df4d9bb1ddaa8bef208fb78ad8cbc1 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_ppp CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_ppp PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_ppp
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index d3b89bd74e407a57f85d95f8dd568c060c63207b..527273149a1bc0141de045f08776d4cd9f22cc26 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_raw4 CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_raw4 PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_raw4
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index 2ac08a8ca83267590a3994656390ef784476bee0..1d4322d735c6a20316403d2ba11ae8fc1170565e 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_raw6 CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_raw6 PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_raw6
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index 015d00fd3d762f37a476e39b26d8754f15f7cd25..4d708b09aaa9c114505f6aa47ddee0b49a1eea7f 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_slip CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_slip PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_slip
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index 78552ee89edcbe433c217bafb1bd6826538e5f2c..1220da630469a314f759fe550603d6a6607f4732 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_token_ring CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_token_ring PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_token_ring
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index 2e521da2bc8539702a7896a878d399df3d10f1ed..0f310b3df058c88e595af0c390d0a3677874eead 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( cd_wlan CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     cd_wlan PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS cd_wlan
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/codecs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/codecs"
 )
index 471fd929280f02b517e669655857e837f28ff0b1..7b79930a3262b09d5dc199695660bb0909523fdf 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( daq_regtest C )
 
+set (CMAKE_C_STANDARD 99)
+set (CMAKE_C_STANDARD_REQUIRED ON)
+set (CMAKE_C_EXTENSIONS ON)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99" )
-
 target_include_directories (
     daq_regtest PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS daq_regtest
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/daqs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/daqs"
 )
index f8eaa2605619c5471bee0062df81c428757a982f..842122f18e8a4ad73c458ec9ac1f56664749f1ff 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( daq_socket C )
 
+set (CMAKE_C_STANDARD 99)
+set (CMAKE_C_STANDARD_REQUIRED ON)
+set (CMAKE_C_EXTENSIONS ON)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99" )
-
 target_include_directories (
     daq_socket PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS daq_socket
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/daqs"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/daqs"
 )
index 15d732a554a2338c3584242055195db61962c482..1bc434b2c37d9cdd7d17f353bc847cdadc5595fc 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( data_log CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     data_log PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS data_log
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/inspectors"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/inspectors"
 )
index 5b6e1fc2b03c19583b9ee96044b7a621f4f8f8df..0666d38de5e46d9976435646ad00ae1d620f47b7 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( dpx CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     dpx PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS dpx
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/inspectors"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/inspectors"
 )
index 9626cdf51f9215209527f58b1d57130eabe1ffed..892a072935305f174ceefb3721f84c0ed24d3831 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( reg_test CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     reg_test PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS reg_test
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/inspectors"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/inspectors"
 )
index ab398244e73934c260bef91c8e9f2d29b7628302..350c067d7cdca088e7ab2de566fbee37d4353402 100644 (file)
@@ -1,7 +1,7 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( find )
 
 install (
     FILES find.lua
-    DESTINATION "lib/${CMAKE_PROJECT_NAME}/ips_options"
+    DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/ips_options"
 )
index 168f83f15db7bf6363711ff2d5c18e0ceda9bdc7..7162921549ff454c5acefe7eb9860dd43be88edc 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( ips_mss CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     ips_mss PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS ips_mss
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/ips_options"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/ips_options"
 )
index 609d4e3023561a592015da8893affc4e6fd54438..cc1c295078e857b300a917b54034f75ec176c305 100644 (file)
@@ -3,5 +3,6 @@ ips_msslibdir = $(pkglibdir)/ips_options
 AM_CXXFLAGS = @SNORT3_CFLAGS@ -std=c++11
 
 ips_msslib_LTLIBRARIES = ips_mss.la
+ips_mss_la_CXXFLAGS = $(AM_CXXFLAGS)
 ips_mss_la_LDFLAGS  = -module -export-dynamic -avoid-version -shared
 ips_mss_la_SOURCES  = ips_mss.cc
index 10558327cecfcf2470d619f9deafc4eb1ea1d3aa..50e1b2bb26e985199a36e301a144a46b727ba439 100644 (file)
@@ -70,7 +70,7 @@ bool TcpMssOption::operator==(const IpsOption& ips) const
     if ( strcmp(s_name, ips.get_name()) )
         return false;
 
-    TcpMssOption& rhs = (TcpMssOption&)ips;
+    const TcpMssOption& rhs = (const TcpMssOption&)ips;
     return ( config == rhs.config );
 }
 
index bc80b245221edad060a6e6b71ea93c25fea92e10..0dc59483de4ca18e1077e90ae03553b8a39d59d5 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( ips_pkt_num CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     ips_pkt_num PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS ips_pkt_num
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/ips_options"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/ips_options"
 )
index f4b22dd8b933beabf09d0e5fd84d6553186d0ee2..84f98f67be9e931e445c612666dd72457c4db9b6 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( ips_urg CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     ips_urg PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS ips_urg
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/ips_options"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/ips_options"
 )
index ab50b7eeec3819f1b3300fdff3ce683d479fa8ff..86c2cefdc50da536ae4001ca47e797bd7e5c57ea 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( ips_wscale CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     ips_wscale PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS ips_wscale
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/ips_options"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/ips_options"
 )
index db62f9cf94bc3eb253d91e2f624024a97f0255fc..a1bfc0909ccfd38910b1901a833cc4ee659ef147 100644 (file)
@@ -3,5 +3,6 @@ ips_wscalelibdir = $(pkglibdir)/ips_options
 AM_CXXFLAGS = @SNORT3_CFLAGS@ -std=c++11
 
 ips_wscalelib_LTLIBRARIES = ips_wscale.la
+ips_wscale_la_CXXFLAGS = $(AM_CXXFLAGS)
 ips_wscale_la_LDFLAGS  = -module -export-dynamic -avoid-version -shared
 ips_wscale_la_SOURCES  = ips_wscale.cc
index 1fba264f4d246c518ab33b20fadfa44459d6be81..7944fdb8d5e42317a9fb9ecf8a6aa5cd11afb96d 100644 (file)
@@ -70,7 +70,7 @@ bool TcpWscaleOption::operator==(const IpsOption& ips) const
     if ( strcmp(s_name, ips.get_name()) )
         return false;
 
-    TcpWscaleOption& rhs = (TcpWscaleOption&)ips;
+    const TcpWscaleOption& rhs = (const TcpWscaleOption&)ips;
     return ( config == rhs.config );
 }
 
index 5895c46d02b0dbf948c66733adf06321f16c884a..563f750f232fcc644e90d8eea2391788bfc90d56 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( alert_ex CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     alert_ex PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS alert_ex
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/loggers"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/loggers"
 )
index 1a5e2c2c1b7c421f50957313431c62a495caecaa..d690c6204f8f4c952ea8bf9d0d6d852c6a344210 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( alert_json CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     alert_json PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS alert_json
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/loggers"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/loggers"
 )
index 73943f649d2aacc513017e0f6cebac5b236b0ccd..39dddf9f4ddb3c740714f4c52743a38d88d3011b 100644 (file)
@@ -1,7 +1,7 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( alert_lua )
 
 install (
     FILES alert.lua
-    DESTINATION "lib/${CMAKE_PROJECT_NAME}/loggers"
+    DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/loggers"
 )
index 15af8c67c8cc979dc71b39e83f3098af2e962c36..8b70cfecce8f2ad737d7201d956b82944e9a2938 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( alert_unixsock CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     alert_unixsock PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS alert_unixsock
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/loggers"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/loggers"
 )
index fb28d07ec50aa0cbfb47e16af8d720bed337ac7b..9d2511138e1f217734cd516569e08f91f33584c8 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( log_null CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -27,8 +31,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     log_null PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -37,5 +39,5 @@ target_include_directories (
 install (
     TARGETS log_null
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/loggers"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/loggers"
 )
index efe7c974a5cfb9b93562ce7cd48fcc52415bb4f7..324354efacaed6a8a2d01dedc0ed5686d80759ca 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( lowmem CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -30,8 +34,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     lowmem PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -40,5 +42,5 @@ target_include_directories (
 install (
     TARGETS lowmem
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/search_engines"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/search_engines"
 )
index b23072680a6fce29099a9056aadcd5163af61e91..f6c92604b688e47ce3f10b84bc20cbcfa5d343e1 100644 (file)
@@ -1,6 +1,10 @@
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( sid_18758 CXX )
 
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -28,8 +32,6 @@ set_target_properties (
         PREFIX ""
 )
 
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-
 target_include_directories (
     sid_18758 PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -38,5 +40,5 @@ target_include_directories (
 install (
     TARGETS sid_18758
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/so_rules"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/so_rules"
 )
index ed369f1f3f4029281d9a34da2e4786b8e125013c..045b3bc9fba61d5886425ab6d73b1470804868ea 100644 (file)
@@ -1,10 +1,20 @@
 %if @generate.project_boilerplate
-cmake_minimum_required ( VERSION 2.8.11 )
+cmake_minimum_required ( VERSION 3.4.3 )
 project ( <%= @project.name %><% if @project.language == "CXX" %> CXX<% elsif @project.language == "C" %> C<% end %> )
 %end
 %if !@project.sources.empty?
 %if @generate.platform_boilerplate
 
+%if @project.language == "CXX"
+set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
+%elsif @project.language == "C"
+set (CMAKE_C_STANDARD 99)
+set (CMAKE_C_STANDARD_REQUIRED ON)
+set (CMAKE_C_EXTENSIONS ON)
+%end
+
 if ( APPLE )
     set ( CMAKE_MACOSX_RPATH OFF )
 endif ( APPLE )
@@ -34,12 +44,6 @@ set_target_properties (
         PREFIX ""
 )
 
-%if @project.language == "CXX"
-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
-%elsif @project.language == "C"
-set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99" )
-%end
-
 target_include_directories (
     <%= @project.libname %> PUBLIC
     ${SNORT3_INCLUDE_DIRS}
@@ -48,13 +52,13 @@ target_include_directories (
 install (
     TARGETS <%= @project.libname %>
     LIBRARY
-        DESTINATION "lib/${CMAKE_PROJECT_NAME}/<%= @project.dirname %>"
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/<%= @project.dirname %>"
 )
 %end
 %if !@project.scripts.empty?
 
 install (
     FILES<% for script in @project.scripts %> <%= script %><% end %>
-    DESTINATION "lib/${CMAKE_PROJECT_NAME}/<%= @project.dirname %>"
+    DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/<%= @project.dirname %>"
 )
 %end
index 749bdf0b239a6c7db6079bc1d7c6f79555de9763..ea75ed52f16be98017059f6ff819ef38e25448bb 100644 (file)
@@ -6,5 +6,5 @@ set (LUA_SCRIPTS
 )
 
 install (FILES ${LUA_SCRIPTS}
-    DESTINATION "etc/snort"
+    DESTINATION "${CMAKE_INSTALL_SYSCONFDIR}/snort"
 )
index 6e9942f1a6133b954949a0cf7cb9b25d65dc3001..c867de1fc31feef83edd402785f7af61bb208efe 100644 (file)
@@ -31,6 +31,10 @@ set(EXTERNAL_INCLUDES
     ${ZLIB_INCLUDE_DIRS}
 )
 
+if ( FLATBUFFERS_FOUND )
+    LIST(APPEND EXTERNAL_LIBRARIES ${FLATBUFFERS_LIBRARIES})
+endif()
+
 if ( HS_FOUND )
     LIST(APPEND EXTERNAL_LIBRARIES ${HS_LIBRARIES})
     LIST(APPEND EXTERNAL_INCLUDES ${HS_INCLUDE_DIRS})
@@ -48,98 +52,18 @@ include_directories(AFTER ${EXTERNAL_INCLUDES})
 include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
 include_directories(BEFORE network_inspectors)
 
-if (STATIC_CODECS)
-    set (STATIC_CODEC_LIBRARIES
-        link_codecs
-        root_codecs
-    )
-endif()
-
 if (ENABLE_UNIT_TESTS)
     enable_testing()
-    set( UNIT_TESTS_LIBRARIES catch_tests)
+    set( UNIT_TESTS_LIBRARIES $<TARGET_OBJECTS:catch_tests>)
     add_subdirectory(catch)
 endif (ENABLE_UNIT_TESTS)
 
 if ( ENABLE_PIGLET )
-    set ( PIGLET_LIBRARIES piglet piglet_plugins )
+    set ( PIGLET_LIBRARIES $<TARGET_OBJECTS:piglet> $<TARGET_OBJECTS:piglet_plugins> )
     add_subdirectory ( piglet )
     add_subdirectory ( piglet_plugins )
 endif ( ENABLE_PIGLET )
 
-#  The main Snort executableRA
-add_executable( snort
-    main.h
-    main.cc
-)
-
-# order libs to avoid undefined symbols
-# from gnu linker
-target_link_libraries( snort
-    ${UNIT_TESTS_LIBRARIES}
-    managers
-    main
-    codecs
-    loggers
-    ip_codecs
-    misc_codecs
-    ${STATIC_CODEC_LIBRARIES}
-    network_inspectors
-    service_inspectors
-# include only those with otherwise unresolved dependencies
-    appid
-    http_inspect
-    http2_inspect
-    sip
-    reputation
-    stream
-    stream_base
-    stream_ip
-    stream_icmp
-    stream_tcp
-    stream_libtcp
-    stream_udp
-    stream_user
-    stream_file
-    stream_paf
-    mime
-    ips_options
-    search_engines
-    target_based
-    ${PIGLET_LIBRARIES}
-    codec_module
-    memory
-    host_tracker
-    pub_sub
-    parser
-    flow
-    side_channel
-    connectors
-    file_connector
-    control
-    filter
-    detection
-    framework
-    file_api
-    latency
-    profiler
-    time
-    ips_actions
-    events
-    hash
-    log
-    packet_io
-    helpers
-    lua
-    decompress
-    sfip
-    sfrt
-    protocols
-    ports
-    utils
-    ${EXTERNAL_LIBRARIES}
-)
-
 add_subdirectory(actions)
 add_subdirectory(codecs)
 add_subdirectory(control)
@@ -181,6 +105,81 @@ add_subdirectory(side_channel)
 add_subdirectory(connectors)
 
 
+# FIXIT-L Delegate building out the target objects list to subdirectories
+
+#  The main Snort executable
+add_executable( snort
+    main.h
+    main.cc
+    $<TARGET_OBJECTS:codecs>
+    $<TARGET_OBJECTS:connectors>
+    $<TARGET_OBJECTS:control>
+    $<TARGET_OBJECTS:decompress>
+    $<TARGET_OBJECTS:detection>
+    $<TARGET_OBJECTS:events>
+    $<TARGET_OBJECTS:file_api>
+    $<TARGET_OBJECTS:file_connector>
+    $<TARGET_OBJECTS:filter>
+    $<TARGET_OBJECTS:flow>
+    $<TARGET_OBJECTS:framework>
+    $<TARGET_OBJECTS:hash>
+    $<TARGET_OBJECTS:helpers>
+    $<TARGET_OBJECTS:host_tracker>
+    $<TARGET_OBJECTS:ips_actions>
+    $<TARGET_OBJECTS:ips_options>
+    $<TARGET_OBJECTS:latency>
+    $<TARGET_OBJECTS:log>
+    $<TARGET_OBJECTS:loggers>
+    $<TARGET_OBJECTS:lua>
+    $<TARGET_OBJECTS:main>
+    $<TARGET_OBJECTS:managers>
+    $<TARGET_OBJECTS:memory>
+    $<TARGET_OBJECTS:mime>
+    $<TARGET_OBJECTS:network_inspectors>
+    $<TARGET_OBJECTS:packet_io>
+    $<TARGET_OBJECTS:parser>
+    $<TARGET_OBJECTS:ports>
+    $<TARGET_OBJECTS:profiler>
+    $<TARGET_OBJECTS:protocols>
+    $<TARGET_OBJECTS:pub_sub>
+    $<TARGET_OBJECTS:search_engines>
+    $<TARGET_OBJECTS:service_inspectors>
+    $<TARGET_OBJECTS:sfip>
+    $<TARGET_OBJECTS:sfrt>
+    $<TARGET_OBJECTS:side_channel>
+    $<TARGET_OBJECTS:stream>
+    $<TARGET_OBJECTS:stream_base>
+    $<TARGET_OBJECTS:stream_ip>
+    $<TARGET_OBJECTS:stream_icmp>
+    $<TARGET_OBJECTS:stream_libtcp>
+    $<TARGET_OBJECTS:stream_tcp>
+    $<TARGET_OBJECTS:stream_udp>
+    $<TARGET_OBJECTS:stream_user>
+    $<TARGET_OBJECTS:stream_file>
+    $<TARGET_OBJECTS:stream_paf>
+    $<TARGET_OBJECTS:target_based>
+    $<TARGET_OBJECTS:tcp_connector>
+    $<TARGET_OBJECTS:time>
+    $<TARGET_OBJECTS:utils>
+    ${PIGLET_LIBRARIES}
+    ${STATIC_CODEC_PLUGINS}
+    ${STATIC_NETWORK_INSPECTOR_PLUGINS}
+    ${STATIC_SERVICE_INSPECTOR_PLUGINS}
+    ${UNIT_TESTS_LIBRARIES}
+)
+
+#[[
+message("
+    STATIC_CODEC_PLUGINS = ${STATIC_CODEC_PLUGINS}
+    STATIC_NETWORK_INSPECTOR_PLUGINS = ${STATIC_NETWORK_INSPECTOR_PLUGINS}
+    STATIC_SERVICE_INSPECTOR_PLUGINS = ${STATIC_SERVICE_INSPECTOR_PLUGINS}
+")
+]]
+
+target_link_libraries( snort
+    ${EXTERNAL_LIBRARIES}
+)
+
 #  setting export properties
 set_property(TARGET snort APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
     ${LUAJIT_INCLUDE_DIR}
@@ -190,18 +189,15 @@ set_property(TARGET snort APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
 
 set_property(TARGET snort APPEND PROPERTY INTERFACE_COMPILE_OPTIONS "${CMAKE_CXX_FLAGS}")
 
-set_target_properties(
-    snort
-    PROPERTIES
-        LINK_FLAGS "${SANITIZER_LDFLAGS}"
-)
+set_property(TARGET snort PROPERTY ENABLE_EXPORTS 1)
 
 install (TARGETS snort
-    EXPORT snortexe
-    RUNTIME DESTINATION bin
+    EXPORT snortexe
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 )
 
-install (EXPORT snortexe
-    DESTINATION lib/snort
-    FILE snort.cmake
-)
+# FIXIT-L Restore CMake export information
+#install (EXPORT snortexe
+#    DESTINATION ${CMAKE_INSTALL_LIBDIR}/snort
+#    FILE snort.cmake
+#)
index ddd706b19d78a53e755ddc86102ea8eef4270e07..9d805a580d4815f89823bbad48beb01fe5e118bc 100644 (file)
@@ -17,14 +17,14 @@ set( PLUGIN_LIST
     )
 
 if (STATIC_IPS_ACTIONS)
-    add_library ( ips_actions STATIC
+    add_library ( ips_actions OBJECT
         ${IPS_ACTION_SOURCES}
         ${PLUGIN_LIST}
     )
 
 else (STATIC_IPS_ACTIONS)
 
-    add_library ( ips_actions STATIC
+    add_library ( ips_actions OBJECT
         ${IPS_ACTION_SOURCES}
     )
 
index 2fad472d2075476cf0c83cb23e1cb5125586a44d..62fdb6647d336f157ca0227c3fccc9280061a2a4 100644 (file)
@@ -1,21 +1,19 @@
 
 if ( ENABLE_UNIT_TESTS )
 
-set (CATCH_INCLUDES
-    catch.hpp
-    snort_catch.h
-)
+    set (CATCH_INCLUDES
+        catch.hpp
+        snort_catch.h
+    )
 
-install (FILES ${CATCH_INCLUDES}
-    DESTINATION "${INCLUDE_INSTALL_PATH}/catch"
-)
+    install (FILES ${CATCH_INCLUDES}
+        DESTINATION "${INCLUDE_INSTALL_PATH}/catch"
+    )
 
-add_library(catch_tests STATIC
-    ${CATCH_INCLUDES}
-    unit_test.cc
-    unit_test.h
-)
-
-target_link_libraries(catch_tests)
+    add_library(catch_tests OBJECT
+        ${CATCH_INCLUDES}
+        unit_test.cc
+        unit_test.h
+    )
 
 endif()
index 82fec57aaac646c72016d57c072cd77431fa1f21..ed4a8e635a2ef349e8609939a196a1711c8e7acd 100644 (file)
@@ -4,12 +4,3 @@ This directory contains the unit-test interface.
 
 catch.hpp is from https://github.com/philsquared/Catch.
 
-If a source file contains only Catch unit tests, the linker must be tricked
-into not excluding the seemingly unneeded object file.  To do this, include
-unit_test.h in the source file and add this directive to the beginning of the
-source code:
-    SNORT_FORCED_INCLUSION_DEFINITION(source_file_name_less_extension)
-Additionally, edit unit_test_main.h to add the external definition with:
-    SNORT_FORCED_INCLUSION_EXTERN(source_file_name_less_extension)
-As well as the reference to it in catch_extern_tests[] with:
-    SNORT_FORCED_INCLUSION_SYMBOL(source_file_name_less_extension)
diff --git a/src/catch/unit_test_main.h b/src/catch/unit_test_main.h
deleted file mode 100644 (file)
index 03942ff..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-//--------------------------------------------------------------------------
-// Copyright (C) 2014-2018 Cisco and/or its affiliates. All rights reserved.
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the terms of the GNU General Public License Version 2 as published
-// by the Free Software Foundation.  You may not use, modify or distribute
-// this program under any other version of the GNU General Public License.
-//
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//--------------------------------------------------------------------------
-// unit_test_main.h author Michael Altizer <mialtize@cisco.com>
-
-#ifndef UNIT_TEST_MAIN_H
-#define UNIT_TEST_MAIN_H
-
-// Unit test framework to be included *only* by the main source file to handle
-// forcing the linking of objects file containing only Catch test cases.
-
-#include "catch/unit_test.h"
-
-// Unresolved external symbol declarations and references.
-SNORT_FORCED_INCLUSION_EXTERN(bitop_test);
-SNORT_FORCED_INCLUSION_EXTERN(lua_stack_test);
-SNORT_FORCED_INCLUSION_EXTERN(sfdaq_module_test);
-SNORT_FORCED_INCLUSION_EXTERN(sfip_test);
-SNORT_FORCED_INCLUSION_EXTERN(sfrf_test);
-SNORT_FORCED_INCLUSION_EXTERN(sfrt_test);
-SNORT_FORCED_INCLUSION_EXTERN(sfthd_test);
-SNORT_FORCED_INCLUSION_EXTERN(stopwatch_test);
-
-bool catch_extern_tests[] =
-{
-    SNORT_FORCED_INCLUSION_SYMBOL(bitop_test),
-    SNORT_FORCED_INCLUSION_SYMBOL(lua_stack_test),
-    SNORT_FORCED_INCLUSION_SYMBOL(sfdaq_module_test),
-    SNORT_FORCED_INCLUSION_SYMBOL(sfip_test),
-    SNORT_FORCED_INCLUSION_SYMBOL(sfrf_test),
-    SNORT_FORCED_INCLUSION_SYMBOL(sfrt_test),
-    SNORT_FORCED_INCLUSION_SYMBOL(sfthd_test),
-    SNORT_FORCED_INCLUSION_SYMBOL(stopwatch_test),
-};
-
-#endif
-
index 22518ea881e02723fdb44522f0d3f9828df97c46..2e8a90e51801d8f41ca2faa0d9164faabc5f59e5 100644 (file)
@@ -8,34 +8,29 @@ set (CODEC_INCLUDES
     codec_module.h
 )
 
-add_library (codecs STATIC
+add_library (codecs OBJECT
     ${CODEC_INCLUDES}
     codec_api.h
     codec_api.cc
-)
-
-add_library (codec_module STATIC
     codec_module.cc
 )
 
 if (STATIC_CODECS)
-    set (CODEC_PLUGIN_LIBRARIES
-        link_codecs
-        root_codecs
+    set (STATIC_CODEC_PLUGINS
+        $<TARGET_OBJECTS:ip_codecs>
+        $<TARGET_OBJECTS:link_codecs>
+        $<TARGET_OBJECTS:misc_codecs>
+        $<TARGET_OBJECTS:root_codecs>
+        CACHE INTERNAL "STATIC_CODEC_PLUGINS"
+    )
+else()
+    set (STATIC_CODEC_PLUGINS
+        $<TARGET_OBJECTS:ip_codecs>
+        $<TARGET_OBJECTS:misc_codecs>
+        CACHE INTERNAL "STATIC_CODEC_PLUGINS"
     )
 endif(STATIC_CODECS)
 
-target_link_libraries (codecs
-    ${CODEC_PLUGIN_LIBRARIES}
-    ip_codecs
-    misc_codecs
-    protocols
-    sfip
-    framework
-    main
-)
-
-
 install (FILES ${CODEC_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/codecs"
 )
index 5487432e38c837a2fa4bff7407ef9479528c6eb6..bd7e6a2643a8064d8876ba29fb92f86faadf2337 100644 (file)
@@ -41,7 +41,7 @@ else()
 endif()
 
 
-add_library( ip_codecs STATIC
+add_library( ip_codecs OBJECT
     cd_ipv4.cc # Static due to its dependence on fpdetect
     cd_hop_opts.cc  #  Ensured the symbols CheckIPV6HopOptions && CheckIPv6ExtensionOrder are in the binary.
     cd_tcp.cc  # Only file to use some functions.  Must be included in binary.
@@ -49,11 +49,3 @@ add_library( ip_codecs STATIC
     ${PLUGIN_SOURCES}
 )
 
-target_link_libraries( ip_codecs
-    protocols
-    framework
-    events
-    main
-    managers
-    codec_module
-)
index e011823d18cfa8902921b825c23a1d67d4f3b69b..76a1d54dc6f5968895c365280e47bb352584da77 100644 (file)
@@ -26,22 +26,12 @@ else(STATIC_CODECS)
 
 endif(STATIC_CODECS)
 
-
-
 # NOTE: if any static libraries need to built, this extra if()
 #       MUST be removed.  It is here because cmake sends out
 #       a warning if no files exist in the link codecs library
 
 if(STATIC_CODECS)
-    add_library( link_codecs STATIC
+    add_library( link_codecs OBJECT
         ${PLUGIN_SOURCES}
     )
-
-
-    target_link_libraries( link_codecs
-        events
-        managers
-        codec_module
-    )
-
 endif(STATIC_CODECS)
index c2febf4485ecd9f706ef728848903aa1c114787e..d884eccb5e1642d4dd5a7e33517928dd8e3dcc17 100644 (file)
@@ -19,12 +19,8 @@ else(STATIC_CODECS)
 
 endif(STATIC_CODECS)
 
-add_library( misc_codecs STATIC
+add_library( misc_codecs OBJECT
     cd_default.cc
     ${PLUGIN_LIST}
 )
 
-target_link_libraries( misc_codecs
-    protocols
-    codec_module
-)
index 8eabc479e041f60675aa8be04eb2ee17b5c1ee69..554dce07e8dc6082c16aeda0ec1d6d69b4be9523 100644 (file)
@@ -12,13 +12,8 @@ endif (STATIC_CODECS)
 
 
 if (STATIC_CODECS)
-    add_library(root_codecs STATIC
+    add_library(root_codecs OBJECT
         ${PLUGIN_LIST}
         ${PCAP_INCLUDE_DIR}/pcap.h  # rebuild if a new libpcap is installed
     )
-
-    target_link_libraries( root_codecs
-        codec_module
-    )
-
 endif (STATIC_CODECS)
index 067857f8180c8848a20c37b55b08207659f47c1b..dd6cc4f01240df480f112e2f586a0ef5e6e49313 100644 (file)
@@ -2,10 +2,8 @@
 add_subdirectory(file_connector)
 add_subdirectory(tcp_connector)
 
-add_library( connectors STATIC
+add_library( connectors OBJECT
     connectors.cc
     connectors.h
 )
 
-target_link_libraries(connectors file_connector tcp_connector)
-
index a16b45470913980893cbe2be1b2473a69c1969f3..d39f3838bed20bd5e9507f18b0932fa3766585ee 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( file_connector STATIC
+add_library( file_connector OBJECT
     file_connector.cc
     file_connector.h
     file_connector_config.h
@@ -7,4 +7,4 @@ add_library( file_connector STATIC
     file_connector_module.h
 )
 
-target_link_libraries(file_connector)
+add_subdirectory(test)
index 53b6fdf2fcc4b4db977174918286129a59faa351..8448ce68693b00dcff4a8ffa1a69db055bbede5d 100644 (file)
@@ -1,3 +1,15 @@
-add_cpputest(file_connector_test file_connector))
-add_cpputest(file_connector_module_test file_connector_module))
+add_cpputest( file_connector_test
+    SOURCES
+        ../file_connector.cc
+        ../../../framework/module.cc
+)
+
+add_cpputest( file_connector_module_test
+    SOURCES
+        ../file_connector_module.cc
+        ../../../framework/module.cc
+        ../../../framework/value.cc
+        ../../../sfip/sf_ip.cc
+        $<TARGET_OBJECTS:catch_tests>
+)
 
index 3d552c396aa1011937ed9eb926af32cabf91e3cb..84dd615d99af97f600798319ce236871e0cfe84e 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( tcp_connector STATIC
+add_library( tcp_connector OBJECT
     tcp_connector.cc
     tcp_connector.h
     tcp_connector_config.h
@@ -7,4 +7,4 @@ add_library( tcp_connector STATIC
     tcp_connector_module.h
 )
 
-target_link_libraries(tcp_connector)
+add_subdirectory(test)
index c6de9083ce8b0d5292867844458384e8e3020645..496dd96e041b6901e93bc7ff9a4a16cb6fbe04ec 100644 (file)
@@ -1,3 +1,21 @@
-add_cpputest(tcp_connector_test tcp_connector))
-add_cpputest(tcp_connector_module_test tcp_connector_module))
+
+add_cpputest( tcp_connector_test
+    SOURCES
+        ../tcp_connector.cc
+        ../../../framework/module.cc
+    LIBS
+        ${CMAKE_THREAD_LIBS_INIT}
+)
+
+add_cpputest( tcp_connector_module_test
+    SOURCES
+        ../tcp_connector_module.cc
+        ../../../framework/module.cc
+        ../../../framework/parameter.cc
+        ../../../framework/value.cc
+        ../../../sfip/sf_ip.cc
+        $<TARGET_OBJECTS:catch_tests>
+    LIBS
+        ${DNET_LIBRARIES}
+)
 
index 3a467cd100a5fbcc31dd14baab12b0a691607325..0a412abef2c57549dc0e094ace2b5064ea461907 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library ( control STATIC 
+add_library ( control OBJECT
     idle_processing.h
     idle_processing.cc
 )
index 7d71ea75a0c7625da02aa60614ddd0e849ff5e97..27b44e5f03a60ad6128b198f88547c1578240c09 100644 (file)
@@ -3,7 +3,7 @@ set( DECOMPRESS_INCLUDES
     file_decomp.h
 )
 
-add_library (decompress STATIC
+add_library (decompress OBJECT
     ${DECOMPRESS_INCLUDES}
     file_decomp.cc
     file_decomp_pdf.cc
@@ -12,11 +12,6 @@ add_library (decompress STATIC
     file_decomp_swf.h
 )
 
-target_link_libraries(decompress
-    log
-    utils
-)
-
 install (FILES ${DECOMPRESS_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/decompress"
 )
index c127dd27d29352537e7446f55c8bc537a14bc6b6..1e25d72360b1f5945791f13a7344df5ef41ac29f 100644 (file)
@@ -27,7 +27,6 @@
 #include <cassert>
 
 #include "detection/detection_util.h"
-#include "main/snort_types.h"
 #include "utils/util.h"
 
 #include "file_decomp_pdf.h"
@@ -37,8 +36,6 @@
 #include "catch/snort_catch.h"
 #endif
 
-SNORT_FORCED_INCLUSION_DEFINITION(file_decomp);
-
 static const char PDF_Sig[5] = { '%', 'P', 'D', 'F', '-' };
 static const char SWF_ZLIB_Sig[3] = { 'C', 'W', 'S' };
 #ifdef HAVE_LZMA
index e1cbea577ba68a74c539dbf71848b866902d4476..9e08575cde373d6731ff9bcb32e21c560d70cce4 100644 (file)
@@ -13,7 +13,7 @@ set (DETECTION_INCLUDES
     treenodes.h
 )
 
-add_library (detection STATIC
+add_library (detection OBJECT
     ${DETECTION_INCLUDES}
     context_switcher.cc
     context_switcher.h
@@ -48,11 +48,6 @@ add_library (detection STATIC
     tag.h
 )
 
-target_link_libraries( detection
-    framework
-    managers
-)
-
 install(FILES ${DETECTION_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/detection"
 )
index e2c7784eead11036923f13617297b054324a0b03..08aeaa2f73610b97a0c354e07701b49dfe20c336 100644 (file)
@@ -4,7 +4,7 @@ set (INCLUDES
     event_queue.h
 )
 
-add_library (events STATIC
+add_library (events OBJECT
     event.cc
     event_queue.cc 
     sfeventq.cc 
index 4fc4f072474c95aeb72d689bcb280f316be0fed9..b0edfaa4887fde85b680febe374617358fc731af 100644 (file)
@@ -11,7 +11,7 @@ set( FILE_API_INCLUDES
     file_service.h 
 )
 
-add_library ( file_api STATIC
+add_library ( file_api OBJECT
     ${FILE_API_INCLUDES}
     circular_buffer.cc 
     circular_buffer.h
@@ -36,8 +36,6 @@ add_library ( file_api STATIC
     file_stats.h
 )
 
-target_link_libraries(file_api mime)
-
 install (FILES ${FILE_API_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/file_api"
 )
index 46684424b3dc48bd2729798d5d34374e41d7c198..6688ad869e887071fcd1a416c84d498f1410ce32 100644 (file)
@@ -55,8 +55,8 @@ class FilePolicy: public FilePolicyBase
 {
 public:
 
-    FilePolicy() { }
-    ~FilePolicy() { }
+    FilePolicy() = default;
+    ~FilePolicy() override = default;
 
     void policy_check(Flow* flow, FileInfo* file) override;
 
index 2ebe27c1f6be1d2d8b8c98b75559fffe3405eda5..709a403f7e240ffa2ec9f31c5163fa55bab232c9 100644 (file)
@@ -6,7 +6,7 @@ if ( ENABLE_UNIT_TESTS )
     )
 endif()
 
-add_library (filter STATIC
+add_library (filter OBJECT
     detection_filter.cc
     detection_filter.h
     rate_filter.cc
index ed9b16eff4c8918f3bc5e0f0207ffc01988a54af..9dafadbc5aa529b4d7efe372c43463dc0da1b2ee 100644 (file)
@@ -23,7 +23,6 @@
 #endif
 
 #include "catch/snort_catch.h"
-#include "main/snort_types.h"
 #include "parser/parse_ip.h"
 #include "sfip/sf_ip.h"
 
@@ -32,8 +31,6 @@
 
 //---------------------------------------------------------------
 
-SNORT_FORCED_INCLUSION_DEFINITION(sfrf_test);
-
 #define IP_ANY   nullptr          // used to get "unset"
 
 #define IP4_SRC  "1.2.3.4"
index d99230812c9437aae6206bfda5d00a1de7ea17ff..27913d3846aee0a0e12ac01d047101ca9810267b 100644 (file)
@@ -24,7 +24,6 @@
 
 #include "catch/snort_catch.h"
 #include "hash/xhash.h"
-#include "main/snort_types.h"
 #include "parser/parse_ip.h"
 #include "sfip/sf_ip.h"
 
@@ -32,8 +31,6 @@
 
 //---------------------------------------------------------------
 
-SNORT_FORCED_INCLUSION_DEFINITION(sfthd_test);
-
 #define IP_ANY   nullptr          // used to get "unset"
 
 #define IP4_SRC  "1.2.3.4"
index 800296e844209536731033cae2331c3f198927ab..6397f883d765e64afd8464ace7a604256628b07f 100644 (file)
@@ -4,7 +4,7 @@ set (FLOW_INCLUDES
     flow_key.h
 )
 
-add_library (flow STATIC
+add_library (flow OBJECT
     ${FLOW_INCLUDES}
     expect_cache.cc
     flow.cc
@@ -22,10 +22,8 @@ add_library (flow STATIC
     session.h
 )
 
-target_link_libraries(flow
-    protocols
-)
-
 install(FILES ${FLOW_INCLUDES}
     DESTINATION ${INCLUDE_INSTALL_PATH}/flow
 )
+
+add_subdirectory(test)
index 1e23da9a7de6d8b2ef0bc09d370b7f8bd59cd9d6..05bb4b4f25efe5672edc1d657ba70e96c3af2454 100644 (file)
@@ -1,3 +1,12 @@
-add_cpputest(ha_test ha)
-add_cpputest(ha_module_ha ha_module)
+add_cpputest( ha_test
+    SOURCES ../ha.cc
+)
 
+add_cpputest( ha_module_test
+    SOURCES
+        ../ha_module.cc
+        ../../framework/module.cc
+        ../../framework/value.cc
+        ../../sfip/sf_ip.cc
+        $<TARGET_OBJECTS:catch_tests>
+)
index 53d922fe17a4d5a10de398e19abc290f2ea00b23..4de094cb502290a3b94cdf7aa11991f38e8184eb 100644 (file)
@@ -22,7 +22,7 @@ set (FRAMEWORK_INCLUDES
     connector.h
 )
 
-add_library ( framework STATIC
+add_library ( framework OBJECT
     ${FRAMEWORK_INCLUDES}
     codec.cc
     cursor.cc
@@ -40,10 +40,6 @@ install (FILES ${FRAMEWORK_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}/api_options.h
     DESTINATION "${INCLUDE_INSTALL_PATH}/framework"
 )
 
-if ( ENABLE_UNIT_TESTS )
-    target_link_libraries ( framework catch_tests )
-endif ( ENABLE_UNIT_TESTS )
-
 add_custom_command(
     OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/api_options.h
     COMMAND grep API_OPTIONS ${CMAKE_BINARY_DIR}/config.h > ${CMAKE_CURRENT_BINARY_DIR}/api_options.h
index 3e67542fa74edde055522cfd34cd9e14fc5403a7..99b23278fca05b7737e877caf1609f2a28f6fee8 100644 (file)
@@ -6,11 +6,8 @@ set (HASH_INCLUDES
     hashfcn.h 
 )
 
-set (HASH_SOURCES )
-
-add_library( hash STATIC
+add_library( hash OBJECT
     ${HASH_INCLUDES}
-    ${HASH_SOURCES}
     hashes.cc
     lru_cache_shared.h
     lru_cache_shared.cc
index 04677171671f0f7c86733940917531c57710465e..3ee11630277a52d364a096bb48e576ac71eecdc4 100644 (file)
@@ -1,2 +1,10 @@
-add_cpputest(lru_cache_shared_test hash)
-add_cpputest(ghash_test hash)
+add_cpputest( lru_cache_shared_test
+    SOURCES ../lru_cache_shared.cc
+)
+
+add_cpputest( ghash_test
+    SOURCES
+        ../ghash.cc
+        ../hashfcn.cc
+        ../primetable.cc
+)
index 48d94a052e61fc242ced7a6ea0e3e28b9d17413a..f4741eaa4e112db2cc461bf918f2b16eee161e85 100644 (file)
@@ -3,7 +3,7 @@ set (HELPERS_INCLUDES
     base64_encoder.h
 )
 
-add_library (helpers STATIC
+add_library (helpers OBJECT
     ${HELPERS_INCLUDES}
     base64_encoder.cc
     chunk.cc
@@ -19,11 +19,6 @@ add_library (helpers STATIC
     ring_logic.h
 )
 
-target_link_libraries(helpers
-    log
-    utils
-)
-
 install (FILES ${HELPERS_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/helpers"
 )
index cb239062352dc419ea8f9432b3a3a96864efa3f3..0b8ce6ddd91724e7865c4194718694579d9d5def 100644 (file)
@@ -34,8 +34,6 @@
 #include "catch/snort_catch.h"
 #endif
 
-SNORT_FORCED_INCLUSION_DEFINITION(base64_encoder);
-
 static inline char b64(uint8_t idx)
 {
     static const char* encoding =
index 39c4a845b095a2fbc1bf89d88e254501e9cb49ba..881c277401131d00bbad3d6e61c76ccbb57ecb47 100644 (file)
@@ -1,4 +1,4 @@
-add_library( host_tracker STATIC
+add_library( host_tracker OBJECT
     host_cache.cc
     host_cache.h
     host_cache_module.cc
index c463b4dcfb578d301a3c4ad3f4b43625f8793246..c7551d8cec5a0e35aeb7988261c61c0a42c3fa3b 100644 (file)
@@ -1,11 +1,40 @@
-set (
-    HOST_TRACKER_MODULE_LIBS
-    framework
-    sfip
-    ${DNET_LIBRARIES}
+
+add_cpputest( host_cache_test
+    SOURCES
+        ../host_cache.cc
+        ../host_tracker.cc
+        ../../sfip/sf_ip.cc
+)
+
+add_cpputest( host_cache_module_test
+    SOURCES
+        ../host_cache_module.cc
+        ../host_cache.cc
+        ../host_tracker.cc
+        ../../framework/module.cc
+        ../../framework/value.cc
+        ../../hash/lru_cache_shared.cc
+        ../../sfip/sf_ip.cc
+        $<TARGET_OBJECTS:catch_tests>
+)
+
+add_cpputest( host_tracker_test
+    SOURCES
+        ../host_tracker.cc
+        ../../sfip/sf_ip.cc
+)
+
+add_cpputest( host_tracker_module_test
+    SOURCES
+        ../host_cache.cc
+        ../host_tracker.cc
+        ../host_tracker_module.cc
+        ../../framework/module.cc
+        ../../framework/parameter.cc
+        ../../framework/value.cc
+        ../../sfip/sf_ip.cc
+        $<TARGET_OBJECTS:catch_tests>
+    LIBS
+        ${DNET_LIBRARIES}
 )
 
-add_cpputest(host_cache_test host_tracker sfip)
-add_cpputest(host_cache_module_test host_tracker ${HOST_TRACKER_MODULE_LIBS} hash)
-add_cpputest(host_tracker_module_test host_tracker ${HOST_TRACKER_MODULE_LIBS})
-add_cpputest(host_tracker_test host_tracker sfip)
index 6ce9aa5e29c0bf0d2e4e5064a5c20a9b81596d3a..b25f5a60b9f3b70d7b11c7126a44bfef22df9283 100644 (file)
@@ -78,7 +78,7 @@ endif ()
 
 if (STATIC_IPS_OPTIONS)
 
-    add_library ( ips_options STATIC
+    add_library ( ips_options OBJECT
         ${IPS_SOURCES}
         ${OPTION_LIST}
         ${PLUGIN_LIST}
@@ -86,7 +86,7 @@ if (STATIC_IPS_OPTIONS)
 
 else (STATIC_IPS_OPTIONS)
 
-    add_library ( ips_options STATIC
+    add_library ( ips_options OBJECT
         ${IPS_SOURCES}
         ${OPTION_LIST}
     )
@@ -131,8 +131,4 @@ else (STATIC_IPS_OPTIONS)
 
 endif (STATIC_IPS_OPTIONS)
 
-target_link_libraries(ips_options
-    framework
-    helpers
-    hash
-)
+add_subdirectory(test)
index a641b0c38cf3dadab560febf23524759f5cf6fe9..9d89ffb12503d6c44d5769d44c86c1da3ab01b48 100644 (file)
@@ -1,13 +1,14 @@
 
-# see Makefile.am for why this is temporarily disabled
-#if ( HAVE_HYPERSCAN )
-#    add_cpputest(ips_regex_test ips_options
-#        ips_options
-#        framework
-#        sfip
-#        catch_tests
-#    )
-#
-#    target_link_libraries(ips_regex_test ${HS_LIBRARIES})
-#    target_include_directories(ips_regex_test PUBLIC ${LUAJIT_INCLUDE_DIR})
-#endif()
+if ( HAVE_HYPERSCAN )
+    add_cpputest( ips_regex_test
+        SOURCES
+            ../ips_regex.cc
+            ../../framework/module.cc
+            ../../framework/ips_option.cc
+            ../../framework/value.cc
+            ../../sfip/sf_ip.cc
+            $<TARGET_OBJECTS:catch_tests>
+        LIBS
+            ${HS_LIBRARIES}
+    )
+endif()
index 4f833fe084458e238b5b20f9dc7e3ceafc4cce6f..2785a0b9fb1e2bab13052b1e29caf3e027e73101 100644 (file)
@@ -14,7 +14,7 @@ set ( LATENCY_SOURCES
     rule_latency_state.h
     rule_latency.h
     rule_latency.cc
-    )
+)
 
-add_library ( latency STATIC ${LATENCY_SOURCES} )
+add_library ( latency OBJECT ${LATENCY_SOURCES} )
 
index 4499693d9faec5bdbd206b05007ad76822d52031..06beec1b31b328a70f9cd1d2c43c096b55199d39 100644 (file)
@@ -9,7 +9,7 @@ set (LOG_INCLUDES
     u2_packet.h
 )
 
-add_library ( log STATIC
+add_library ( log OBJECT
     ${LOG_INCLUDES}
     log.cc
     log_text.cc
@@ -25,9 +25,4 @@ install(FILES ${LOG_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/log"
 )
 
-target_link_libraries(log
-    utils
-    protocols
-)
-
 add_subdirectory ( test )
index 6c6ef530db2fc2ee91230fb41ea7de100fdb25a3..740d1458ef1967e70fe40baf328b8c44c0512c3b 100644 (file)
@@ -1 +1,3 @@
-add_cpputest(obfuscator_test log)
+add_cpputest( obfuscator_test
+    SOURCES ../obfuscator.cc
+)
index 4c4746dd61197d6df42fef76f096c201cab5da19..e88282dd530018f2b26627bd11f8d196d36721e7 100644 (file)
@@ -32,8 +32,6 @@
 #include "protocols/protocol_ids.h"
 #include "utils/util.h"
 
-SNORT_FORCED_INCLUSION_DEFINITION(u2_pseudo_header);
-
 static const uint8_t u2_ttl = 64;
 
 //--------------------------------------------------------------------------
index 195360c354b895df1b0318ce1647cc9c6b487949..31adde14d18b014bda69fc24420974f681124514 100644 (file)
@@ -18,7 +18,7 @@ set (PLUGIN_LIST
 )
 
 if (STATIC_LOGGERS)
-    add_library ( loggers STATIC
+    add_library ( loggers OBJECT
         ${LOGGER_SOURCES}
         ${PLUGIN_LIST}
     )
@@ -26,7 +26,7 @@ if (STATIC_LOGGERS)
 
 else (STATIC_LOGGERS)
 
-    add_library ( loggers STATIC
+    add_library ( loggers OBJECT
         ${LOGGER_SOURCES}
     )
 
index ae230df7d185e69e5a80d41dfdd4cd407f981bd9..1181e7104fd79dd157cadaffbaa3bac3e3f4801e 100644 (file)
@@ -3,7 +3,7 @@ if ( ENABLE_UNIT_TESTS )
     set(TEST_FILES lua_stack_test.cc)
 endif()
 
-add_library (lua STATIC
+add_library (lua OBJECT
     lua.cc
     lua.h
     lua_ref.cc
index 18c43120a9310cf42b20d9216d37b963c85562a5..6c374ef5ba596a6f54d27bd1ffad06f7b993849e 100644 (file)
 #include <string>
 
 #include "catch/snort_catch.h"
-#include "main/snort_types.h"
 
 #include "lua_test_common.h"
 #include "lua/lua_stack.h"
 
-SNORT_FORCED_INCLUSION_DEFINITION(lua_stack_test);
-
 static lua_State* L = nullptr;
 
 static void test_signed()
index 5634cc599603e1d96381585f52ff34be991ec97f..0119052af2691f18e82235b3f28a519d587b298b 100644 (file)
@@ -33,7 +33,6 @@
 #include "lua/lua.h"
 #include "main/analyzer.h"
 #include "main/analyzer_command.h"
-#include "main/inclusion.h"
 #include "main/request.h"
 #include "main/shell.h"
 #include "main/snort.h"
@@ -53,7 +52,7 @@
 #include "utils/safec.h"
 
 #ifdef UNIT_TEST
-#include "catch/unit_test_main.h"
+#include "catch/unit_test.h"
 #endif
 
 #ifdef PIGLET
index 0434322773cef9ea7a5a7a81c867f4327006ff0e..9c8d9b185b531c4a3d056d87e5e1f92e847a0ef6 100644 (file)
@@ -16,7 +16,7 @@ if ( ENABLE_SHELL )
     set ( SHELL_SOURCES control.cc control.h control_mgmt.cc control_mgmt.h )
 endif ( ENABLE_SHELL )
 
-add_library (main STATIC
+add_library (main OBJECT
     analyzer.cc
     analyzer.h
     analyzer_command.cc
@@ -45,14 +45,6 @@ add_library (main STATIC
     ${SHELL_SOURCES}
 )
 
-
-target_link_libraries(main
-    time
-    codecs
-    detection
-    packet_io
-)
-
 install (FILES ${INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/main"
 )
diff --git a/src/main/inclusion.h b/src/main/inclusion.h
deleted file mode 100644 (file)
index 3c59238..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-//--------------------------------------------------------------------------
-// Copyright (C) 2014-2018 Cisco and/or its affiliates. All rights reserved.
-// Copyright (C) 2007-2013 Sourcefire, Inc.
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the terms of the GNU General Public License Version 2 as published
-// by the Free Software Foundation.  You may not use, modify or distribute
-// this program under any other version of the GNU General Public License.
-//
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//--------------------------------------------------------------------------
-
-#ifndef SNORT_INCLUSION_H
-#define SNORT_INCLUSION_H
-
-SNORT_FORCED_INCLUSION_EXTERN(base64_encoder);
-SNORT_FORCED_INCLUSION_EXTERN(jsnorm);
-SNORT_FORCED_INCLUSION_EXTERN(kmap);
-SNORT_FORCED_INCLUSION_EXTERN(utf);
-SNORT_FORCED_INCLUSION_EXTERN(u2_pseudo_header);
-
-bool extern_symbols[] =
-{
-    SNORT_FORCED_INCLUSION_SYMBOL(base64_encoder),
-    SNORT_FORCED_INCLUSION_SYMBOL(jsnorm),
-    SNORT_FORCED_INCLUSION_SYMBOL(kmap),
-    SNORT_FORCED_INCLUSION_SYMBOL(utf),
-    SNORT_FORCED_INCLUSION_SYMBOL(u2_pseudo_header)
-};
-
-#endif
index bd42d18fd068f7a67674aed6222ce4978d0ab484..8518ac76442ce3eafdf1edffdaf959895c8699ad 100644 (file)
@@ -70,14 +70,5 @@ typedef uint16_t Port;
 #define __attribute__(x)    /* delete __attribute__ if non-gcc or gcc1 */
 #endif
 
-#define SNORT_FORCED_INCLUSION_SYMBOL( name ) \
-    __snort_include_##name
-
-#define SNORT_FORCED_INCLUSION_DEFINITION( name ) \
-    bool SNORT_FORCED_INCLUSION_SYMBOL( name )
-
-#define SNORT_FORCED_INCLUSION_EXTERN( name ) \
-    extern SNORT_FORCED_INCLUSION_DEFINITION( name )
-
 #endif
 
index 84a5a41fcfa73008ed2caa8c662a3f294b2ef5a1..6f158871f22b1edb482fef356b99d51a3e7bc0ca 100644 (file)
@@ -9,7 +9,7 @@ set( MANAGERS_INCLUDES
     inspector_manager.h
 )
 
-add_library( managers STATIC
+add_library( managers OBJECT
     ${MANAGERS_INCLUDES}
     action_manager.h
     action_manager.cc
@@ -34,19 +34,6 @@ add_library( managers STATIC
     connector_manager.h
 )
 
-target_link_libraries(managers
-    framework
-    helpers
-    loggers
-    ips_options
-    network_inspectors
-    service_inspectors
-    search_engines
-    parser
-    codecs
-    ips_actions
-)
-
 install (FILES ${MANAGERS_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/managers"
 )
index d917b23baae9483bac1fc5c6333bba7710a0a2cb..e2de794f2d9c80feb90dc782d468032e5f460012 100644 (file)
@@ -9,8 +9,8 @@ set ( MEMORY_SOURCES
     memory_manager.cc
     prune_handler.cc
     prune_handler.h
-    )
+)
 
-add_library ( memory STATIC
+add_library ( memory OBJECT
     ${MEMORY_SOURCES}
 )
index b6555882c8b0cf3749f6af74d28494871eee556c..e7152ffd8f9ee3914ac591ccaf47bed8aeeb45e1 100644 (file)
@@ -223,6 +223,16 @@ void operator delete[](void* p) noexcept
 void operator delete[](void* p, const std::nothrow_t&) noexcept
 { ::operator delete[](p); }
 
+// C++14 delete operators are a special case and must be explicitly exported
+// since we're compiling as C++11 but must capture these for external libraries
+void operator delete(void* p, size_t) noexcept;
+SO_PUBLIC void operator delete(void* p, size_t) noexcept
+{ ::operator delete(p); }
+
+void operator delete[](void* p, size_t) noexcept;
+SO_PUBLIC void operator delete[](void* p, size_t) noexcept
+{ ::operator delete[](p); }
+
 // -----------------------------------------------------------------------------
 // unit tests
 // -----------------------------------------------------------------------------
index 6498c4eb25c43b977a10160edd48bb3e3028133b..4deecbaa4d9ed7adb296a7a2e6bae85407052d61 100644 (file)
@@ -9,7 +9,7 @@ set( MIME_INCLUDES
     file_mime_process.h 
 )
 
-add_library ( mime STATIC
+add_library ( mime OBJECT
     ${MIME_INCLUDES}
     file_mime_config.cc 
     file_mime_decode.cc 
@@ -28,8 +28,6 @@ add_library ( mime STATIC
     decode_uu.h
 )
 
-target_link_libraries(mime file_api)
-
 install (FILES ${MIME_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/mime"
 )
index 98fcfa708f8d86c31f5ca5a77b8f73100f95fb13..d3b9cff6c4b6b217bb2aea62bed955e27ee96da7 100644 (file)
@@ -9,22 +9,25 @@ add_subdirectory(port_scan)
 add_subdirectory(reputation)
 
 if(STATIC_INSPECTORS)
-    set(STATIC_INSPECTOR_LIBS
-        arp_spoof
-        packet_capture
+    set(STATIC_INSPECTOR_OBJS
+        $<TARGET_OBJECTS:arp_spoof>
+        $<TARGET_OBJECTS:packet_capture>
     )
 endif()
 
-add_library( network_inspectors STATIC
+set(STATIC_NETWORK_INSPECTOR_PLUGINS
+    $<TARGET_OBJECTS:appid>
+    $<TARGET_OBJECTS:binder>
+    $<TARGET_OBJECTS:normalize>
+    $<TARGET_OBJECTS:perf_monitor>
+    $<TARGET_OBJECTS:port_scan>
+    $<TARGET_OBJECTS:reputation>
+    ${STATIC_INSPECTOR_OBJS}
+    CACHE INTERNAL "STATIC_NETWORK_INSPECTOR_PLUGINS"
+)
+
+add_library( network_inspectors OBJECT
     network_inspectors.cc
     network_inspectors.h
 )
 
-target_link_libraries( network_inspectors
-    ${STATIC_INSPECTOR_LIBS}
-    binder
-    normalize
-    perf_monitor
-    port_scan
-    reputation
-)
index e850c15442f85217855a91ae8c41c1ae80b1cdd9..9e92a8db97fe10edc7b2e2868d3c824d16e9e18d 100644 (file)
@@ -1,4 +1,3 @@
-set( CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} -fno-strict-aliasing" )
 
 set (APPID_INCLUDES
     appid_api.h
@@ -195,7 +194,7 @@ set ( APPID_SOURCES
 
 
 #if (STATIC_INSPECTORS)
-    add_library(appid STATIC
+add_library(appid OBJECT
        ${APPID_SOURCES}
        ${CP_APPID_SOURCES}
        ${DP_APPID_SOURCES}
index bd64bc15154983866c4fb2280925b0be369691bc..85b7f325c89c685bd1e4496c18ab285fa2190c5f 100644 (file)
@@ -1,12 +1,7 @@
-set (
-    SMTP_TEST_LIBS
-    utils
-)
-
-add_cpputest(detector_smtp_test ${SMTP_TEST_LIBS})
-
-add_cpputest(http_url_patterns_test)
 
 include_directories ( appid PRIVATE ${APPID_INCLUDE_DIR} )
 
+add_cpputest( detector_smtp_test )
+
+add_cpputest( http_url_patterns_test )
 
index f6a584f6fb308f7700caa10f4fcb92d231891a76..d221dfda36fa2e1ac06799902aed674b878ec245 100644 (file)
@@ -1,6 +1,5 @@
 
-add_cpputest(service_rsync_test)
-
 include_directories ( appid PRIVATE ${APPID_INCLUDE_DIR} )
 
+add_cpputest( service_rsync_test )
 
index 407b73a462e7777bb1b4e536533ec07368f8b136..3cd624de37de33b0e0494b8cc398449074e7733d 100644 (file)
@@ -1,12 +1,24 @@
 
-add_library(appid_test_depends_on_lib ../appid_peg_counts.cc ../../../sfip/sf_ip.cc ../../../utils/util_cstring.cc)
+add_library(appid_cpputest_deps OBJECT ../appid_peg_counts.cc ../../../sfip/sf_ip.cc ../../../utils/util_cstring.cc)
+include_directories ( appid PRIVATE ${APPID_INCLUDE_DIR} )
 
-add_cpputest(appid_http_event_test appid_test_depends_on_lib)
-add_cpputest(appid_api_test appid_test_depends_on_lib)
-#add_cpputest(app_info_table_test appid_test_depends_on_lib)
-add_cpputest(appid_detector_test appid_test_depends_on_lib)
-add_cpputest(appid_expected_flags_test appid_test_depends_on_lib)
+# add_cpputest( app_info_table_test
+#     SOURCES $<TARGET_OBJECTS:appid_cpputest_deps>
+# )
 
-include_directories ( appid PRIVATE ${APPID_INCLUDE_DIR} )
+add_cpputest( appid_api_test
+    SOURCES $<TARGET_OBJECTS:appid_cpputest_deps>
+)
+
+add_cpputest( appid_detector_test
+    SOURCES $<TARGET_OBJECTS:appid_cpputest_deps>
+)
+
+add_cpputest( appid_expected_flags_test
+    SOURCES $<TARGET_OBJECTS:appid_cpputest_deps>
+)
 
+add_cpputest( appid_http_event_test
+    SOURCES $<TARGET_OBJECTS:appid_cpputest_deps>
+)
 
index 6e9894d89e9f03df85ddf83cd69d8439a0c659cc..93b9c83d177884c090a074f19c56bb436075a236 100644 (file)
@@ -6,7 +6,7 @@ set(FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library(arp_spoof STATIC
+    add_library(arp_spoof OBJECT
         ${FILE_LIST}
     )
 
index 744c5a09133d46b2a059652dc7f811a43b91ce6c..3b5a833e68d45a17cca9ee730e78052a80a2ee88 100644 (file)
@@ -8,7 +8,7 @@ set(FILE_LIST
 )
 
 #if (STATIC_INSPECTORS)
-    add_library(binder STATIC ${FILE_LIST})
+add_library(binder OBJECT ${FILE_LIST})
 
 #else (STATIC_INSPECTORS)
 #    add_dynamic_module(binder inspectors ${FILE_LIST})
index 54deaa895f1fa4b9ce52b9c09e502ca77f7886e0..6f2661a0e851ed851e74e98589d761509c61d70c 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( normalize STATIC
+add_library( normalize OBJECT
     normalize.cc
     normalize.h
     norm_module.cc
index 17da45eed219f8a74c80f3176d582e5342d1248b..86c7fc7762197e049ba5dfd1d4d3265983b93f79 100644 (file)
@@ -6,8 +6,7 @@ set ( FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library(packet_capture STATIC ${FILE_LIST})
-    target_link_libraries(packet_capture utils)
+    add_library(packet_capture OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(packet_capture inspectors ${FILE_LIST})
index a8093f77c0b3a7c93f75df9a09d0d10294240779..5179a623782f39535eb2ea43abab83dc2a7e15cb 100644 (file)
@@ -2,7 +2,7 @@ if ( FLATBUFFERS_FOUND )
     set( FLATBUFFERS_SOURCE fbs_formatter.h fbs_formatter.cc )
 endif()
 
-add_library ( perf_monitor STATIC
+add_library ( perf_monitor OBJECT
     base_tracker.cc
     base_tracker.h
     csv_formatter.cc
@@ -30,5 +30,4 @@ add_library ( perf_monitor STATIC
 
 if ( FLATBUFFERS_FOUND )
     target_include_directories( perf_monitor PRIVATE ${FLATBUFFERS_INCLUDE_DIR} )
-    target_link_libraries( perf_monitor ${FLATBUFFERS_LIBRARIES} )
 endif()
index 73f27eacbacf6a92c6bf688e95a9d85f5bfb167e..ca63585a4f23ca157ae5c7197cfea652d34c7f3f 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( port_scan STATIC
+add_library( port_scan OBJECT
     port_scan.cc
     ps_detect.cc
     ps_detect.h
@@ -10,6 +10,3 @@ add_library( port_scan STATIC
     ipobj.h
 )
 
-target_link_libraries( port_scan
-    events
-)
index c465460cb92866ae3f3e65e659405f5c9178031c..13b9244a2c3817f5349af571f5e1f14cb26dea7a 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( reputation STATIC
+add_library( reputation OBJECT
     reputation_config.h
     reputation_inspect.h
     reputation_inspect.cc
index 0c751cb91407e00d9bd566fea5abb5f083290d5a..1d73e1c64bd3ac40bc01c75c75086b3fb9229dee 100644 (file)
@@ -10,7 +10,7 @@ if (ENABLE_UNIT_TESTS)
     )
 endif (ENABLE_UNIT_TESTS)
 
-add_library (packet_io STATIC
+add_library (packet_io OBJECT
     active.cc
     active.h
     intf.cc
index ac13cd007e80475f443b8c3acfedb321b9f5a0fb..5eafcfe5ae980b23b70b458fb3bfc5ee67427d39 100644 (file)
 
 #include "catch/snort_catch.h"
 #include "main/snort_config.h"
-#include "main/snort_types.h"
 #include "packet_io/sfdaq_config.h"
 #include "packet_io/sfdaq_module.h"
 
-SNORT_FORCED_INCLUSION_DEFINITION(sfdaq_module_test);
-
 TEST_CASE("Kitchen Sink", "[SFDAQModule]")
 {
     SFDAQModule sfdm;
index b278c4ed2a6bc675f3ca6a28e9575fbcf28dfc84..ff81659a0b0612e992b24cb8cabe942b4efcf48d 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library (parser STATIC
+add_library (parser OBJECT
     arg_list.cc
     arg_list.h
     parser.cc
@@ -26,9 +26,3 @@ add_library (parser STATIC
     vars.h
 )
 
-target_link_libraries(parser
-    protocols
-    time
-    stream
-    codecs
-)
index 6b4b9d0d2a5371e35bac3c85a206d71ad27f0a5f..ebc7994b6f6f2d335812b904838216963d5e9678 100644 (file)
@@ -1,6 +1,4 @@
-add_library (
-    piglet STATIC
-
+add_library ( piglet OBJECT
     piglet.cc
     piglet_manager.cc
     piglet_output.cc
index c39b27cd62caa874d35a513971146eb671fe51b5..be2601312c60cc61c703e78f915fb79e32546567 100644 (file)
@@ -92,7 +92,6 @@ set (
     ${PP_TEST_SOURCES}
 )
 
-add_library (
-    piglet_plugins STATIC
+add_library ( piglet_plugins OBJECT
     ${PP_SOURCES}
 )
index 4c8a9513d9277744b7cdbc85cf72e612b9411dae..3e9b074658bda0687475a5927b1f78b8248d33ba 100644 (file)
@@ -1,5 +1,5 @@
 
-ADD_LIBRARY( ports STATIC
+ADD_LIBRARY( ports OBJECT
     port_group.cc
     port_group.h
     port_item.cc
@@ -18,9 +18,3 @@ ADD_LIBRARY( ports STATIC
     rule_port_tables.h
 )
 
-target_link_libraries(ports
-    log
-)
-
-list(APPEND PACKAGED_DIST "readme.txt")
-
index c33f2ab021b8167b72047621f8973508945a56a0..e231925d2cb92bb4dc8be90ed6c6c45e86802ae4 100644 (file)
@@ -26,7 +26,7 @@ set ( PROFILER_SOURCES
     time_profiler.h
     )
 
-add_library ( profiler STATIC
+add_library ( profiler OBJECT
     ${PROFILER_SOURCES}
     ${PROFILER_INCLUDES}
 )
index 046a173fe83fa133b7f5701e5980cd6c51fd434a..ac17592a0bc7a058077cd0f811bc1698be7486e4 100644 (file)
@@ -26,7 +26,7 @@ set (PROTOCOL_HEADERS
     vlan.h
 )
 
-add_library (protocols STATIC
+add_library (protocols OBJECT
     ${PROTOCOL_HEADERS}
     layer.cc
     packet.cc
index c70afa1b2877c64202419b42dafba9575b5875b1..e3c60d48e534dfbec4736e8b654b2df7acd3aed8 100644 (file)
@@ -4,7 +4,7 @@ set (PUB_SUB_INCLUDES
     sip_events.h
 )
 
-add_library( pub_sub STATIC
+add_library( pub_sub OBJECT
     ${PUB_SUB_INCLUDES}
     http_events.cc
     sip_events.cc
index 686b5b04dee347ab8bac18a275e2e566e0669dc3..69119d588efefe9f5b5c2daa69d802f71b818d37 100644 (file)
@@ -43,7 +43,7 @@ set (SEARCH_ENGINE_SOURCES
 )
 
 if ( STATIC_SEARCH_ENGINES )
-    add_library(search_engines STATIC
+    add_library(search_engines OBJECT
         ${ACSMX_SOURCES}
         ${ACSMX2_SOURCES}
         ${INTEL_SOURCES}
@@ -52,7 +52,7 @@ if ( STATIC_SEARCH_ENGINES )
     )
 
 else ( STATIC_SEARCH_ENGINES)
-    add_library(search_engines STATIC
+    add_library(search_engines OBJECT
         ${SEARCH_ENGINE_SOURCES}
         ${SEARCH_ENGINE_INCLUDES}
     )
@@ -66,3 +66,5 @@ endif (STATIC_SEARCH_ENGINES)
 install(FILES ${SEARCH_ENGINE_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/search_engines"
 )
+
+add_subdirectory(test)
index ccda50962ddfbe8726763b9eae7bee3fbb3b6903..899e972e2eb975f239d7eea636804610a642b6bc 100644 (file)
@@ -1,10 +1,14 @@
 
-# see Makefile.am for why this is temporarily disabled
-#if ( HAVE_HYPERSCAN )
-#    add_cpputest(hyperscan_test search_engines
-#        framework
-#        catch_tests
-#    )
-#
-#    target_link_libraries(hyperscan_test ${HS_LIBRARIES})
-#endif()
+add_cpputest( search_tool_test
+    SOURCES
+        ../ac_bnfa.cc
+        ../bnfa_search.cc
+        ../search_tool.cc
+)
+
+if ( HAVE_HYPERSCAN )
+    add_cpputest( hyperscan_test
+        SOURCES ../hyperscan.cc
+        LIBS ${HS_LIBRARIES}
+    )
+endif()
index 729c6176be55af91f398692328988355eeff8da8..38387e4582089984ca95620afaeafd9f0b3cd75f 100644 (file)
@@ -71,7 +71,7 @@ SO_PUBLIC void LogMessage(const char*, ...)
 {
 }
 
-void FatalError(const char*,...)
+[[noreturn]] void FatalError(const char*,...)
 {
     exit(1);
 }
index c86efe1b3b1cbba42568bb7f409f3067721ab954..84404eac6ff389a9eafe391a833a1ff4df029d37 100644 (file)
@@ -18,30 +18,34 @@ add_subdirectory(ssl)
 add_subdirectory(wizard)
 
 if (STATIC_INSPECTORS)
-    set (STATIC_INSPECTOR_LIBS
-        back_orifice
-        dce_rpc
-        dnp3
-        dns
-        ftp_telnet
-        gtp_inspect
-        modbus
-        rpc_decode
-        ssh
-        wizard
+    set (STATIC_INSPECTOR_OBJS
+        $<TARGET_OBJECTS:back_orifice>
+        $<TARGET_OBJECTS:dce_rpc>
+        $<TARGET_OBJECTS:dnp3>
+        $<TARGET_OBJECTS:dns>
+        $<TARGET_OBJECTS:ftp_telnet>
+        $<TARGET_OBJECTS:gtp_inspect>
+        $<TARGET_OBJECTS:modbus>
+        $<TARGET_OBJECTS:rpc_decode>
+        $<TARGET_OBJECTS:ssh>
+        $<TARGET_OBJECTS:wizard>
     )
 endif()
 
-add_library( service_inspectors STATIC
-    service_inspectors.cc
-    service_inspectors.h
+set(STATIC_SERVICE_INSPECTOR_PLUGINS
+    $<TARGET_OBJECTS:http_inspect>
+    $<TARGET_OBJECTS:http2_inspect>
+    $<TARGET_OBJECTS:imap>
+    $<TARGET_OBJECTS:pop>
+    $<TARGET_OBJECTS:sip>
+    $<TARGET_OBJECTS:smtp>
+    $<TARGET_OBJECTS:ssl>
+    ${STATIC_INSPECTOR_OBJS}
+    CACHE INTERNAL "STATIC_SERVICE_INSPECTOR_PLUGINS"
 )
 
-target_link_libraries( service_inspectors
-    ${STATIC_INSPECTOR_LIBS}
-    imap
-    pop
-    smtp
-    ssl
+add_library( service_inspectors OBJECT
+    service_inspectors.cc
+    service_inspectors.h
 )
 
index d6441acdf7508bbcdfa8d0dece6ecc663c745ae0..3eef6e9ab4cc45b04efcc5393ce324b287d60a81 100644 (file)
@@ -4,7 +4,7 @@ set( FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library( back_orifice STATIC ${FILE_LIST})
+    add_library( back_orifice OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(back_orifice inspectors ${FILE_LIST})
index 2918558715575546c365faa7f24162bf3b62608e..4f7736107fcfe133956ec7bb361c054773b7c96d 100644 (file)
@@ -57,7 +57,7 @@ set( FILE_LIST
 
 if (STATIC_INSPECTORS)
 
-    add_library(dce_rpc STATIC ${FILE_LIST})
+    add_library(dce_rpc OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(dce_rpc inspectors ${FILE_LIST})
index 3f23b6d757374a08f50d757dca940f8dde9499dc..41e3afead96afb1c315d06cbcc19eb39515740b0 100644 (file)
@@ -18,7 +18,7 @@ set( FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library(dnp3 STATIC ${FILE_LIST})
+    add_library(dnp3 OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(dnp3 inspectors ${FILE_LIST})
index 57e53c0aa00c7372c5ac28bb863f5aace113c5c3..4265a76d77dd088c7f8f60ede0a468e7b3e5de86 100644 (file)
@@ -7,7 +7,7 @@ set( FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library( dns STATIC ${FILE_LIST})
+    add_library( dns OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(dns inspectors ${FILE_LIST})
index ffeccad3cc12af837d89664d742ac7fbe473a970..760a5407898f9fec72d007d9debe95625cba2f13 100644 (file)
@@ -37,8 +37,7 @@ set (FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library(ftp_telnet STATIC ${FILE_LIST})
-    target_link_libraries(ftp_telnet utils)
+    add_library(ftp_telnet OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
    add_dynamic_module(ftp_telnet inspectors ${FILE_LIST})
index a2795a1f609a18fba3a11389dba4d63884f7c83a..2e00806817a69ca6e22f177a3fe6377a1aab13f2 100644 (file)
@@ -14,7 +14,7 @@ set( FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library(gtp_inspect STATIC ${FILE_LIST})
+    add_library(gtp_inspect OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(gtp_inspect inspectors ${FILE_LIST})
index 593ce3df624eb077cd9486a6cd834514e0959888..84d7b8f8a48101cd669adbdf77dae654881d30f5 100644 (file)
@@ -19,7 +19,7 @@ set (FILE_LIST
 )
 
 #if (STATIC_INSPECTORS)
-    add_library(http2_inspect STATIC ${FILE_LIST})
+    add_library(http2_inspect OBJECT ${FILE_LIST})
 
 #else(STATIC_INSPECTORS)
     #add_dynamic_module(http2_inspect inspectors ${FILE_LIST})
index 724be9b711153bf3869cffbe0efe9c3c64c29140..017e0287eb9d82e1f5a48b0d9b87c8b9c25c6070 100644 (file)
@@ -1,3 +1,17 @@
-add_cpputest(http2_inspect_impl_test http2_inspect framework)
-add_cpputest(http2_stream_splitter_impl_test http2_inspect framework)
+add_cpputest( http2_inspect_impl_test
+    SOURCES
+        ../http2_flow_data.cc
+        ../http2_inspect_impl.cc
+        ../http2_module.cc
+        ../http2_tables.cc
+        ../../../framework/module.cc
+)
+add_cpputest( http2_stream_splitter_impl_test
+    SOURCES
+        ../http2_flow_data.cc
+        ../http2_stream_splitter_impl.cc
+        ../http2_module.cc
+        ../http2_tables.cc
+        ../../../framework/module.cc
+)
 
index f4878d3f03bfc8aa99f73d7225328663575938c8..8b6687e6457ea94a775facc71358adb07a6d75f8 100644 (file)
@@ -28,6 +28,7 @@
 // Stubs whose sole purpose is to make the test code link
 FlowData::FlowData(unsigned u, Inspector* ph) : next(nullptr), prev(nullptr), handler(ph), id(u) {}
 FlowData::~FlowData() {}
+unsigned FlowData::flow_data_id = 0;
 void show_stats(PegCount*, const PegInfo*, unsigned, const char*) { }
 void show_stats(PegCount*, const PegInfo*, IndexVec&, const char*, FILE*) { }
 void show_stats(SimpleStats*, const char*) { }
index a34eed09863633e24cc3408c0fc49619e4cf7bf3..bd3a7001b44e71ab3a7323a65f1e5a079adf16e2 100644 (file)
@@ -66,7 +66,7 @@ set (FILE_LIST
 )
 
 #if (STATIC_INSPECTORS)
-    add_library(http_inspect STATIC ${FILE_LIST})
+    add_library(http_inspect OBJECT ${FILE_LIST})
 
 #else(STATIC_INSPECTORS)
     #add_dynamic_module(http_inspect inspectors ${FILE_LIST})
index 89de05c0f6aee0fa1445a90985d4fae6daae1018..1f4a2174180412761ea400c7db27409528faa6f1 100644 (file)
@@ -1,9 +1,44 @@
-add_cpputest(http_uri_norm_test http_inspect framework)
-add_cpputest(http_normalizers_test http_inspect framework)
-add_cpputest(http_module_test http_inspect framework)
-add_cpputest(http_msg_head_shared_util_test http_inspect framework)
+add_cpputest( http_module_test
+    SOURCES
+        ../http_module.cc
+        ../http_tables.cc
+        ../http_normalizers.cc
+        ../http_uri_norm.cc
+        ../http_field.cc
+        ../../../framework/module.cc
+)
 
-# FIXIT-M this doesn't link properly under cmake. Autotools version is working.
-# add_library(depends_on_lib_transaction ../http_transaction.cc ../http_flow_data.cc ../http_test_manager.cc ../http_test_input.cc)
-# add_cpputest(http_transaction_test depends_on_lib_transaction framework -lz)
+add_cpputest( http_msg_head_shared_util_test
+    SOURCES
+        ../http_msg_head_shared_util.cc
+        ../http_field.cc
+        ../http_str_to_code.cc
+)
 
+add_cpputest( http_normalizers_test
+    SOURCES
+        ../http_normalizers.cc
+        ../http_field.cc
+)
+
+add_cpputest( http_transaction_test
+    SOURCES
+        ../http_transaction.cc
+        ../http_flow_data.cc
+        ../http_test_manager.cc
+        ../http_test_input.cc
+    LIBS ${ZLIB_LIBRARIES}
+)
+
+add_cpputest( http_uri_norm_test
+    SOURCES
+        ../http_uri_norm.cc
+        ../http_module.cc
+        ../http_test_manager.cc
+        ../http_test_input.cc
+        ../http_normalizers.cc
+        ../http_str_to_code.cc
+        ../http_field.cc
+        ../http_tables.cc
+        ../../../framework/module.cc
+)
index 563b5252ed0b0d3cbc1f82b3bb9756ea4ee346ec..e248e20fd7d6270c879bb9d63d90b97c799302be 100644 (file)
@@ -11,7 +11,7 @@ set( FILE_LIST
 
 # can't be be linked dynamically yet
 #if (STATIC_INSPECTORS)
-    add_library( imap STATIC ${FILE_LIST})
+    add_library( imap OBJECT ${FILE_LIST})
 
 #else (STATIC_INSPECTORS)
     #add_dynamic_module(imap inspectors ${FILE_LIST})
index de84949ae5e21206fd2797aacd3509eaa8c0359b..25413e040a2d752911b32be3a8f479ce2acb00c3 100644 (file)
@@ -13,7 +13,7 @@ set( FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library(modbus STATIC ${FILE_LIST})
+    add_library(modbus OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(modbus inspectors ${FILE_LIST})
index 06f86bac668e83afaf8456076e2233a634b1bdf8..f9b08865ded723ad0b81b7079bafc3d1af07e91d 100644 (file)
@@ -11,7 +11,7 @@ set( FILE_LIST
 
 # can't be be linked dynamically yet
 #if (STATIC_INSPECTORS)
-    add_library( pop STATIC ${FILE_LIST})
+    add_library( pop OBJECT ${FILE_LIST})
 
 #else (STATIC_INSPECTORS)
     #add_dynamic_module(pop inspectors ${FILE_LIST})
index 86dbc97b7a6948626c2dd36a3f4b72c9c8cb9159..8e8e1b11054427fed65db4a86738eb795fdc1a0e 100644 (file)
@@ -6,7 +6,7 @@ set( FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library( rpc_decode STATIC ${FILE_LIST})
+    add_library( rpc_decode OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(rpc_decode inspectors ${FILE_LIST})
index db4aa84a2b9eb3294ffe57190c661176f8d597cc..389ba145d90a0fe479360aa9bcfc123c0d1990e3 100644 (file)
@@ -21,7 +21,7 @@ set( FILE_LIST
 
 #FIXIT-M fix dependency loops
 #if (STATIC_INSPECTORS)
-    add_library( sip STATIC ${FILE_LIST})
+    add_library( sip OBJECT ${FILE_LIST})
 
 #else (STATIC_INSPECTORS)
 #    add_dynamic_module(sip inspectors ${FILE_LIST})
index 6bbd7b957fc26d61f39e728404da3c48498abc54..2110aa60ff891d7d85a15b800279f8086e6df79a 100644 (file)
@@ -17,7 +17,7 @@ set( FILE_LIST
 
 # can't be be linked dynamically yet
 #if (STATIC_INSPECTORS)
-    add_library( smtp STATIC ${FILE_LIST})
+    add_library( smtp OBJECT ${FILE_LIST})
 
 #else (STATIC_INSPECTORS)
     #add_dynamic_module(smtp inspectors ${FILE_LIST})
index b052bbe48d9513b61a3edd5d68b2437788e41bc4..ff633b1d0604e425b28b979628496052a5141729 100644 (file)
@@ -8,7 +8,7 @@ set( FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library( ssh STATIC ${FILE_LIST})
+    add_library( ssh OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(ssh inspectors ${FILE_LIST})
index 5db4f30deb25373ad07a6100d3fb48baa60561b3..3ab23c448c5b8cf837ddf92f88f3d1c7c16dcfa9 100644 (file)
@@ -13,7 +13,7 @@ set( FILE_LIST
 
 # can't be be linked dynamically yet
 #if (STATIC_INSPECTORS)
-    add_library( ssl STATIC ${FILE_LIST})
+    add_library( ssl OBJECT ${FILE_LIST})
 
 #else (STATIC_INSPECTORS)
     #add_dynamic_module(ssl inspectors ${FILE_LIST})
index 3833e50d63f1025e89df4a72eaf87b908ed3ed4e..a27614b4052d3710117480ccb77addaf8483c74a 100644 (file)
@@ -12,7 +12,7 @@ set(FILE_LIST
 )
 
 if (STATIC_INSPECTORS)
-    add_library(wizard STATIC ${FILE_LIST})
+    add_library(wizard OBJECT ${FILE_LIST})
 
 else (STATIC_INSPECTORS)
     add_dynamic_module(wizard inspectors ${FILE_LIST})
index eb57b24330ccd5f988df155bfee84dc4a994b539..227deb45e051735bb1b0b65bf8d35ae8e6c0b82a 100644 (file)
@@ -9,7 +9,7 @@ if ( ENABLE_UNIT_TESTS )
     set(TEST_FILES sfip_test.cc)
 endif()
 
-add_library ( sfip STATIC
+add_library ( sfip OBJECT
     ${SFIP_INCLUDES}
     ${TEST_FILES}
     sf_cidr.cc
index 381a53279605f1dc4c65af6a1f3d9c1e4e3e466b..d1078fe323e3ad2185ce6a00d5b845259df3e8da 100644 (file)
 #include <cstring>
 
 #include "catch/snort_catch.h"
-#include "main/snort_types.h"
 
 #include "sf_cidr.h"
 
 //---------------------------------------------------------------
 
-SNORT_FORCED_INCLUSION_DEFINITION(sfip_test);
-
 static int s_debug = 0;
 
 static const char* const codes[] =
index b5f4eb0dea2ecb76375a6ddf5b2cd5a5ac978a25..6e73dc72ff1ecd09d46e8596f7a9fba36a7ab64f 100644 (file)
@@ -3,7 +3,7 @@ if ( ENABLE_UNIT_TESTS )
     set(TEST_FILES sfrt_test.cc)
 endif()
 
-add_library ( sfrt STATIC
+add_library ( sfrt OBJECT
     sfrt.cc
     sfrt.h
     sfrt_dir.cc
index c7524be2053e91a06681b08563e47bc536542730..684de0a820f7fa33ddaea6d53257df83ad054c6b 100644 (file)
@@ -23,7 +23,6 @@
 #endif
 
 #include "catch/snort_catch.h"
-#include "main/snort_types.h"
 #include "sfip/sf_cidr.h"
 #include "utils/util.h"
 
@@ -32,8 +31,6 @@
 #define NUM_IPS 32
 #define NUM_DATA 4
 
-SNORT_FORCED_INCLUSION_DEFINITION(sfrt_test);
-
 typedef struct
 {
     const char* ip_str;
index 45b699946fcb2485aa4289ca3f7d34d35cf54f13..6190c87f3f478b7e01de0c27106d44602a601596 100644 (file)
@@ -1,9 +1,9 @@
 
-add_library( side_channel STATIC
+add_library( side_channel OBJECT
     side_channel.cc
     side_channel.h
     side_channel_module.cc
     side_channel_module.h
 )
 
-target_link_libraries(side_channel)
+add_subdirectory(test)
index 3a373be7c47a0492c6c2e575245ff9a08676599e..f09d3c530661e443904964db4f87bba9ea01e577 100644 (file)
@@ -1,3 +1,13 @@
-add_cpputest(side_channel_test side_channel)
-add_cpputest(side_channel_module_test side_channel_module)
+add_cpputest( side_channel_test
+    SOURCES ../side_channel.cc
+)
+
+add_cpputest( side_channel_module_test
+    SOURCES
+        ../side_channel_module.cc
+        ../../framework/module.cc
+        ../../framework/value.cc
+        ../../sfip/sf_ip.cc
+        $<TARGET_OBJECTS:catch_tests>
+)
 
index 90e225fad5ffc4133de7d88597cf0e1530bfecef..19eb7f09e54ab9f5f4b082c481834bec280caa75 100644 (file)
@@ -15,31 +15,19 @@ set (STREAM_INCLUDES
     stream_splitter.h
 )
 
-add_library( stream STATIC
+add_library( stream OBJECT
     stream.cc
     stream_inspectors.cc
     stream_inspectors.h
     stream_splitter.cc
 )
 
-add_library( stream_paf STATIC
+add_library( stream_paf OBJECT
     flush_bucket.cc
     flush_bucket.h
     paf.cc
 )
 
-target_link_libraries( stream
-    stream_base
-    stream_ip
-    stream_icmp
-    stream_libtcp
-    stream_tcp
-    stream_udp
-    stream_user
-    stream_file
-    protocols
-)
-
 install (FILES ${STREAM_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/stream"
 )
index 3e023232cc40a3a567f7b6e1fedf00349c0026e4..291098e5fe865fdcf0250cc5721a8eb7e74c5578 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( stream_base STATIC
+add_library( stream_base OBJECT
     stream_base.cc
     stream_ha.cc
     stream_ha.h
index 5c3d9122d220bfd25e49e5cef185adc04848fcda..55c038f0722a7a76a04beb417a05559a9e50bd36 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( stream_file STATIC
+add_library( stream_file OBJECT
     file_module.cc
     file_module.h
     file_session.cc
index 2ef8112b97ec6f749c7da43c4c266b5d62561e74..c6fe737d99ab24da1e97ffd57f5945ded3acdf97 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( stream_icmp STATIC
+add_library( stream_icmp OBJECT
     icmp_ha.cc
     icmp_ha.h
     icmp_module.cc
@@ -10,6 +10,3 @@ add_library( stream_icmp STATIC
     stream_icmp.h
 )
 
-target_link_libraries( stream_icmp
-    protocols
-)
index 0f7d474928aa467224ed6d7f7f08d3ce64b67e9f..66dd2ee70c59aa96e648436851b010ab15599351 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( stream_ip STATIC
+add_library( stream_ip OBJECT
     ip_defrag.cc
     ip_defrag.h
     ip_ha.cc
index 4c42b154919fe20791db856b40ed52324c50762c..e28affb232bddf4465f904042d3ec763fdafdcf9 100644 (file)
@@ -4,7 +4,7 @@ if ( ENABLE_UNIT_TESTS )
 endif()
 
 
-add_library( stream_libtcp STATIC
+add_library( stream_libtcp OBJECT
        tcp_segment_descriptor.cc
        tcp_state_handler.cc
        tcp_state_machine.cc
index b4a23aff1f606bef67803fabce233f7c0487c90b..24eeaa1e477d63e6a46083529afe18c15735bd95 100644 (file)
@@ -1,4 +1,4 @@
-add_library( stream_tcp STATIC
+add_library( stream_tcp OBJECT
     ips_stream_reassemble.cc
     ips_stream_size.cc
     segment_overlap_editor.h
index 6c2db4e634f69b042cc8d0acb5253e00592e2ccc..8732eb055a7b26dba370cb6e4da91144eeb96baa 100644 (file)
@@ -1,21 +1,9 @@
 
-include_directories( ../../../network_inspectors ${LUAJIT_INCLUDE_DIR} )
-
-set (
-    STREAM_TCP_TEST_SOURCES
-    ../tcp_normalizer.cc
-    ../tcp_normalizers.cc
-    ../../../protocols/tcp_options.cc
-)
-
-if ( ENABLE_DEBUG_MSGS )
-    list (
-        APPEND STREAM_TCP_TEST_SOURCES
-        ../../../main/snort_debug.cc
-    )
-endif ( ENABLE_DEBUG_MSGS )
-
-add_library ( stream_tcp_test ${STREAM_TCP_TEST_SOURCES} )
-
 # this test is broken, uncomment below when fixed
-# add_cpputest( tcp_normalizer_test stream_tcp_test )
+# add_cpputest( tcp_normalizer_test
+#     SOURCES
+#         ../tcp_normalizer.cc
+#         ../tcp_normalizers.cc
+#         ../../../protocols/tcp_options.cc
+#         ../../../main/snort_debug.cc
+# )
index bfb7ac133fe1e1fc57ecff8d89ff185b46daa042..a5b7eb976345ffbb179daca61be1e9bb8ad73c66 100644 (file)
@@ -1,4 +1,4 @@
 
-# can't find the .o and don't want parent lib
-#add_cpputest(stream_splitter_test ../stream_splitter.o)
-
+add_cpputest( stream_splitter_test
+    SOURCES ../stream_splitter.cc
+)
index 33bfb24261ccb8ce51bfac9bfc1d20cc91f68d54..322a472ce6391200567413726292eacf1e91be4c 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( stream_udp STATIC
+add_library( stream_udp OBJECT
     stream_udp.cc
     stream_udp.h
     udp_ha.cc
index d7d0ca36b546eca8b016061a4bf8a1206d36e721..aaf500d37a3ec68db49172df800c34ffc242a865 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( stream_user STATIC
+add_library( stream_user OBJECT
     user_module.cc
     user_module.h
     user_session.cc
index 0f70878e046ed11bcdc1d94ed2e0748317006802..d04bce8df46b564fd04af70589821745b473aaad 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( target_based STATIC
+add_library( target_based OBJECT
     sftarget_reader.cc 
     sftarget_reader.h
     sftarget_hostentry.cc
@@ -10,7 +10,7 @@ add_library( target_based STATIC
 
 set ( TARGET_BASED_INCLUDES
     snort_protocols.h
-    )
+)
 
 install (FILES ${TARGET_BASED_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/target_based"
index 6730398098477523ed12b8c9ae077cfba03d197e..91ea5345b426a20b325ca0e5b46fa2fcdad9e931 100644 (file)
@@ -4,7 +4,7 @@ set ( TIME_INTERNAL_SOURCES
     periodic.h
     timersub.h
     tsc_clock.cc
-    )
+)
 
 if ( ENABLE_UNIT_TESTS )
     list ( APPEND TIME_INTERNAL_SOURCES stopwatch_test.cc )
@@ -15,12 +15,12 @@ set ( TIME_INCLUDES
     packet_time.h
     stopwatch.h
     tsc_clock.h
-    )
+)
 
-add_library ( time STATIC
+add_library ( time OBJECT
     ${TIME_INTERNAL_SOURCES}
     ${TIME_INCLUDES}
-    )
+)
 
 install (FILES ${TIME_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/time"
index c02aa57311c99f26396ac162a5eb194a43671143..a2c851a4a7453e6c8a28c3dac4a761c3e1d44d16 100644 (file)
 #endif
 
 #include "catch/snort_catch.h"
-#include "main/snort_types.h"
 
 #include "clock_defs.h"
 #include "stopwatch.h"
 
-SNORT_FORCED_INCLUSION_DEFINITION(stopwatch_test);
-
 namespace t_stopwatch
 {
 
index bfdabaa17fc7c8b3b4d37d63d98dca8337ec9cc4..9ec49c31e3a7041d9b69951319655267b00a02fb 100644 (file)
@@ -20,7 +20,7 @@ if ( ENABLE_UNIT_TESTS )
     set(TEST_FILES bitop_test.cc)
 endif()
 
-ADD_LIBRARY( utils STATIC
+add_library ( utils OBJECT
     ${UTIL_INCLUDES}
     ${SNPRINTF_SOURCES}
     boyer_moore.cc 
@@ -48,10 +48,6 @@ if ( FLATBUFFERS_FOUND )
     target_include_directories( utils PRIVATE ${FLATBUFFERS_INCLUDE_DIR} )
 endif()
 
-target_link_libraries(utils
-    log
-)
-
 install (FILES ${UTIL_INCLUDES}
     DESTINATION "${INCLUDE_INSTALL_PATH}/utils"
 )
index 590c29af769e086c11aa49a294923a72e2b69e7d..4a3304fa64176ec3ffaf3fd04fa14ea340287f8a 100644 (file)
 #endif
 
 #include "catch/snort_catch.h"
-#include "main/snort_types.h"
 
 #include "bitop.h"
 
-SNORT_FORCED_INCLUSION_DEFINITION(bitop_test);
-
 static bool t_bitop_buffer_zero(BitOp& bitop)
 {
     for ( size_t i = 0; i < bitop.get_buf_size(); ++i )
index fb91d302bb76551f7a2946d88e9caf1262849ec5..ba440255bdfb7c79c801077fada9710fef56b876 100644 (file)
 #include <limits>
 #include <string>
 
-#include "main/snort_types.h"
-
 #include "util.h"
 
-SNORT_FORCED_INCLUSION_DEFINITION(kmap);
-
 KMAP* KMapNew(KMapUserFreeFunc userfree)
 {
     KMAP* km = (KMAP*)snort_calloc(sizeof(KMAP));
index 33a78b74168dc01ccbaef1fb1fae6b0d28783175..93ebdb16eac78cf72bbefb18f52ec9531a54134e 100644 (file)
@@ -27,7 +27,6 @@
 #include <cstdlib>
 #include <cstring>
 
-#include "main/snort_types.h"
 #include "main/thread.h"
 
 #define INVALID_HEX_VAL (-1)
@@ -49,8 +48,6 @@
 
 #define ANY '\0'
 
-SNORT_FORCED_INCLUSION_DEFINITION(jsnorm);
-
 typedef enum
 {
     PNORM_ACT_DQUOTES,
index f519cdcc1ec7ac6b603310cfa45ecc6b22d338da..2441743dc360cecae452a121aae8d853ad385913 100644 (file)
 #include <iconv.h>
 #endif
 
-#include "main/snort_types.h"
-
 #define DSTATE_FIRST 0
 #define DSTATE_SECOND 1
 #define DSTATE_THIRD 2
 #define DSTATE_FOURTH 3
 
-SNORT_FORCED_INCLUSION_DEFINITION(utf);
-
 UtfDecodeSession::UtfDecodeSession()
 {
     init_decode_utf_state();
index 6bfaa667866309dce57e3c8d9cf9627eaaf21d84..201ded1c6f4f8ee253ad0b61912808a224990caf 100644 (file)
@@ -12,7 +12,7 @@ if ( FLATBUFFERS_FOUND )
     )
 
     install (TARGETS fbstreamer
-        RUNTIME DESTINATION bin
+        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
     )
 endif()
 
index 5f92fe569dcd90ae94a099c5e6585cc5a23e8097..65cade398cd03c2f20a3b946734c7c3d647dd510 100644 (file)
@@ -1,13 +1,13 @@
 
 include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
 
+add_subdirectory(config_states)
 add_subdirectory(data)
+add_subdirectory(helpers)
 add_subdirectory(keyword_states)
-add_subdirectory(preprocessor_states)
 add_subdirectory(output_states)
-add_subdirectory(config_states)
+add_subdirectory(preprocessor_states)
 add_subdirectory(rule_states)
-add_subdirectory(helpers)
 
 if (ENABLE_UNIT_TESTS)
 if (0)
@@ -21,17 +21,16 @@ add_executable( snort2lua
     init_state.h
     snort2lua.cc
     init_state.cc
-)
-
-target_link_libraries( snort2lua
-    conversion_data
-    snort2lua_helpers
-    keyword_states
-    output_states
-    preprocessor_states
-    rule_states
+    $<TARGET_OBJECTS:config_states>
+    $<TARGET_OBJECTS:conversion_data>
+    $<TARGET_OBJECTS:data_types>
+    $<TARGET_OBJECTS:keyword_states>
+    $<TARGET_OBJECTS:output_states>
+    $<TARGET_OBJECTS:preprocessor_states>
+    $<TARGET_OBJECTS:rule_states>
+    $<TARGET_OBJECTS:snort2lua_helpers>
 )
 
 install (TARGETS snort2lua
-    RUNTIME DESTINATION bin
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 )
index 74d3cc520ea5890a714ed7a96265c422d75b5707..6fa05ccdef047b8e254aa1979a50ed2971194123 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( config_states STATIC
+add_library( config_states OBJECT
     config_alertfile.cc
     config_binding.cc
     config_checksums.cc
@@ -33,7 +33,3 @@ add_library( config_states STATIC
     config_api.cc
 )
 
-target_link_libraries( config_states
-    snort2lua_helpers
-    conversion_data
-)
index 9b3404f44399a9225db15c793512dc18e6e55d3f..00532b8032f6068e86ab6e1e61ea157b7fdba01d 100644 (file)
@@ -1,7 +1,7 @@
 
 add_subdirectory (data_types)
 
-add_library( conversion_data STATIC
+add_library( conversion_data OBJECT
     dt_data.h
     dt_data.cc
     dt_table_api.h
@@ -10,6 +10,3 @@ add_library( conversion_data STATIC
     dt_rule_api.cc
 )
 
-target_link_libraries( conversion_data
-    data_types
-)
index 584cba6ca7f50038e0d52521965037031b8feef5..ea0c185e96339b70e21b4ac938818c8b83f9609f 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( data_types STATIC
+add_library( data_types OBJECT
     dt_comment.h
     dt_comment.cc
     dt_include.h
index 74a6f0ec06937f322e11e163afd12928e6ce5449..cb9c6417ebfc966402ab5cdbb481d7d13002fb76 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( snort2lua_helpers STATIC
+add_library( snort2lua_helpers OBJECT
     converter.h
     converter.cc
     s2l_util.h
@@ -12,6 +12,3 @@ add_library( snort2lua_helpers STATIC
     s2l_markup.cc
 )
 
-target_link_libraries( snort2lua_helpers
-    conversion_data
-)
index 310b7fa3935b7dab81bdf0c6408d85e38f62bb74..1d2dc137d6979137806bd0f40795567d67d05ce1 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( keyword_states STATIC
+add_library( keyword_states OBJECT
     kws_attribute_table.cc
     kws_config.cc
     kws_deleted.cc
@@ -19,11 +19,3 @@ add_library( keyword_states STATIC
     keywords_api.cc
 )
 
-target_link_libraries( keyword_states
-    snort2lua_helpers
-    conversion_data
-    output_states
-    preprocessor_states
-    config_states
-    rule_states
-)
index 82546cc662679a68afa6780a60d0ebd17c195a7b..70a2d2f6e169552797ba1c55cc63959339d92441 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library(output_states STATIC
+add_library(output_states OBJECT
     out_csv.cc
     out_deleted.cc
     out_fast.cc
@@ -15,7 +15,3 @@ add_library(output_states STATIC
     output_api.cc
 )
 
-target_link_libraries( output_states
-    snort2lua_helpers
-    conversion_data
-)
index 44e51c8b8260d4f624a7b011473c7a1f2cbf982e..c379769834371aed9a8320f39f5c32c94e718b97 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library(preprocessor_states STATIC
+add_library(preprocessor_states OBJECT
     pps_appid.cc
     pps_arpspoof.cc
     pps_bo.cc
@@ -38,7 +38,3 @@ add_library(preprocessor_states STATIC
     preprocessor_api.cc
 )
 
-target_link_libraries( preprocessor_states
-    snort2lua_helpers
-    conversion_data
-)
index 87d9a5452d2b06fd9474a9776d8bff3e59c78da8..970833abaa668c0d50633e88e13cfd8c6c98b9b8 100644 (file)
@@ -1,5 +1,5 @@
 
-add_library( rule_states STATIC
+add_library( rule_states OBJECT
     rule_base64_decode.cc
     rule_content.cc
     rule_convert_comma_list.cc
@@ -26,7 +26,3 @@ add_library( rule_states STATIC
     rule_api.h
 )
 
-target_link_libraries( rule_states
-    snort2lua_helpers
-    conversion_data
-)
index 206097e8ca5880b0237a7256793fdce5676bfa45..3055b39a731d8d35f4af1ecde2ba973f768159ac 100644 (file)
@@ -13,9 +13,9 @@ target_link_libraries( u2boat
 )
 
 install (TARGETS u2boat
-    RUNTIME DESTINATION bin
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 )
 
 install(FILES README.u2boat
-    DESTINATION "${SNORT_DATA_DIR}"
+    DESTINATION "${CMAKE_INSTALL_DOCDIR}"
 )
index 2d47900d4d847e0ffe5c1a319d52a9b8cd731c98..2f66e21bec6670f686bbd9c9520b9cc995012109 100644 (file)
@@ -10,6 +10,6 @@ target_include_directories( u2spewfoo
 )
 
 install (TARGETS u2spewfoo
-    RUNTIME DESTINATION bin
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 )