From 0b8ccc4f46b47de97331208551916a35d24f14cd Mon Sep 17 00:00:00 2001 From: "Michael Altizer (mialtize)" Date: Fri, 18 Nov 2016 13:40:01 -0500 Subject: [PATCH] Merge pull request #712 in SNORT/snort3 from cmake_cpputest to master Squashed commit of the following: commit fb4c001b0b8709a3505bb044705be8a2cedd84d8 Author: Michael Altizer Date: Fri Nov 18 11:50:08 2016 -0500 cmake: Correct package name used in HS and HWLOC so that REQUIRED works. commit 3a543585194bf2c30993cca4247bfd7f6ef88027 Author: Michael Altizer Date: Fri Nov 18 11:48:20 2016 -0500 cmake: Improve detection and use of CppUTest in non-standard locations --- CMakeLists.txt | 1 - cmake/FindCppUTest.cmake | 20 ++++++++++++++++++++ cmake/FindHS.cmake | 2 +- cmake/FindHWLOC.cmake | 2 +- cmake/include_libraries.cmake | 3 +++ cmake/macros.cmake | 2 +- 6 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 cmake/FindCppUTest.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b088f830..f82e90685 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,6 @@ include_directories (${PROJECT_BINARY_DIR}) include_directories (${PROJECT_SOURCE_DIR}) if (ENABLE_UNIT_TESTS) - pkg_check_modules (CPPUTEST REQUIRED cpputest) include(CTest) add_custom_target (check COMMAND ${CMAKE_CTEST_COMMAND}) add_dependencies (check snort) diff --git a/cmake/FindCppUTest.cmake b/cmake/FindCppUTest.cmake new file mode 100644 index 000000000..a1cd33a54 --- /dev/null +++ b/cmake/FindCppUTest.cmake @@ -0,0 +1,20 @@ + +find_package(PkgConfig) +pkg_check_modules(PC_CPPUTEST cpputest) + +find_path(CPPUTEST_INCLUDE_DIR CppUTest/TestHarness.h + HINTS ${PC_CPPUTEST_INCLUDEDIR} ${PC_CPPUTEST_INCLUDE_DIRS}) + +find_library(CPPUTEST_LIBRARY NAMES CppUTest + HINTS ${PC_CPPUTEST_LIBDIR} ${PC_CPPUTEST_LIBRARY_DIRS}) +find_library(CPPUTEST_EXT_LIBRARY NAMES CppUTestExt + HINTS ${PC_CPPUTEST_LIBDIR} ${PC_CPPUTEST_LIBRARY_DIRS}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(CppUTest DEFAULT_MSG CPPUTEST_LIBRARY CPPUTEST_EXT_LIBRARY CPPUTEST_INCLUDE_DIR) + +if(CPPUTEST_LIBRARY AND CPPUTEST_EXT_LIBRARY) + set(CPPUTEST_LIBRARIES ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY}) +endif(CPPUTEST_LIBRARY AND CPPUTEST_EXT_LIBRARY) + +mark_as_advanced(CPPUTEST_INCLUDE_DIR CPPUTEST_LIBRARY CPPUTEST_EXT_LIBRARY) diff --git a/cmake/FindHS.cmake b/cmake/FindHS.cmake index 9e67fb521..686701b06 100644 --- a/cmake/FindHS.cmake +++ b/cmake/FindHS.cmake @@ -10,6 +10,6 @@ find_library(HS_LIBRARIES NAMES hs HINTS ${HS_LIBRARIES_DIR} ${PC_HYPERSCAN_LIBDIR} ${PC_HYPERSCAN_LIBRARY_DIRS}) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(hs DEFAULT_MSG HS_LIBRARIES HS_INCLUDE_DIRS) +find_package_handle_standard_args(HS DEFAULT_MSG HS_LIBRARIES HS_INCLUDE_DIRS) mark_as_advanced(HS_INCLUDE_DIRS HS_LIBRARIES) diff --git a/cmake/FindHWLOC.cmake b/cmake/FindHWLOC.cmake index c3f93bcb2..4c13de66d 100644 --- a/cmake/FindHWLOC.cmake +++ b/cmake/FindHWLOC.cmake @@ -15,6 +15,6 @@ find_library(HWLOC_LIBRARIES NAMES hwloc HINTS ${PC_HWLOC_LIBDIR} ${PC_HWLOC_LIBRARY_DIRS}) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(hwloc DEFAULT_MSG HWLOC_LIBRARIES HWLOC_INCLUDE_DIRS) +find_package_handle_standard_args(HWLOC DEFAULT_MSG HWLOC_LIBRARIES HWLOC_INCLUDE_DIRS) mark_as_advanced(HWLOC_INCLUDE_DIRS HWLOC_LIBRARIES) diff --git a/cmake/include_libraries.cmake b/cmake/include_libraries.cmake index 5c3014857..b8cf0aaab 100644 --- a/cmake/include_libraries.cmake +++ b/cmake/include_libraries.cmake @@ -10,6 +10,9 @@ find_package(PCAP REQUIRED) find_package(PCRE REQUIRED) find_package(SFBPF REQUIRED) find_package(ZLIB REQUIRED) +if (ENABLE_UNIT_TESTS) + find_package(CppUTest REQUIRED) +endif (ENABLE_UNIT_TESTS) # optional libraries find_package(LibLZMA QUIET) diff --git a/cmake/macros.cmake b/cmake/macros.cmake index 4bf7ef177..f6fcedb16 100644 --- a/cmake/macros.cmake +++ b/cmake/macros.cmake @@ -24,7 +24,7 @@ endmacro (add_shared_library) macro (add_cpputest testname) if ( ENABLE_UNIT_TESTS ) add_executable (${testname} EXCLUDE_FROM_ALL ${testname}.cc) - target_include_directories (${testname} PRIVATE ${CPPUTEST_INCLUDE_DIRS}) + target_include_directories (${testname} PRIVATE ${CPPUTEST_INCLUDE_DIR}) target_link_libraries (${testname} ${CPPUTEST_LIBRARIES} ${ARGN}) add_test (${testname} ${testname}) add_dependencies ( check ${testname} ) -- 2.47.2