Selaa lähdekoodia

Update FindCheck to upstream version

Julius Pfrommer 4 vuotta sitten
vanhempi
commit
3bf63f8cf6
4 muutettua tiedostoa jossa 66 lisäystä ja 71 poistoa
  1. 7 0
      .travis.yml
  2. 1 1
      doc/building.rst
  3. 5 1
      tests/CMakeLists.txt
  4. 53 69
      tools/cmake/FindCheck.cmake

+ 7 - 0
.travis.yml

@@ -46,6 +46,7 @@ matrix:
             - latexmk
             # tests
             - check
+            - libsubunit-dev
             - valgrind
       env:
         - MINGW=true
@@ -72,6 +73,7 @@ matrix:
             - latexmk
             # tests
             - check
+            - libsubunit-dev
             - valgrind
 #
 # clang-6 full host build with tests:
@@ -96,6 +98,7 @@ matrix:
             - latexmk
             # tests
             - check
+            - libsubunit-dev
             - valgrind
 #
 # clang-6 python-3 full host build with tests:
@@ -120,6 +123,7 @@ matrix:
             - latexmk
             # tests
             - check
+            - libsubunit-dev
             - valgrind
       env:
         - PYTHON=python3
@@ -141,6 +145,7 @@ matrix:
             - latexmk
             # tests
             - check
+            - libsubunit-dev
             - valgrind
 #
 # clang-6 python-3 install build and minimal example:
@@ -180,6 +185,7 @@ matrix:
             - ubuntu-toolchain-r-test
           packages:
             - check
+            - libsubunit-dev
             - clang-6.0
             - clang-tidy-6.0
       env:
@@ -218,6 +224,7 @@ matrix:
             - ubuntu-toolchain-r-test
           packages:
             - check
+            - libsubunit-dev
             - clang-6.0
             - clang-tidy-6.0
             - libfuzzer-6.0-dev

+ 1 - 1
doc/building.rst

@@ -32,7 +32,7 @@ Building with CMake on Ubuntu or Debian
    # enable additional features
    sudo apt-get install cmake-curses-gui # for the ccmake graphical interface
    sudo apt-get install libmbedtls-dev # for encryption support
-   sudo apt-get install check # for unit tests
+   sudo apt-get install check libsubunit-dev # for unit tests
    sudo apt-get install python-sphinx graphviz # for documentation generation
    sudo apt-get install python-sphinx-rtd-theme # documentation style
 

+ 5 - 1
tests/CMakeLists.txt

@@ -1,7 +1,11 @@
 # Load CMake Packages
 find_package(Check REQUIRED)
 set(LIBS ${CHECK_LIBRARIES} ${open62541_LIBRARIES})
-include_directories(${CHECK_INCLUDE_DIRS})
+if(NOT WIN32 AND NOT APPLE)
+  list(APPEND LIBS subunit)
+endif()
+
+include_directories(${CHECK_INCLUDE_DIR})
 #find_package(Threads REQUIRED)
 if(NOT MSVC AND UA_ENABLE_UNIT_TESTS_MEMCHECK)
     find_package(Valgrind REQUIRED)

+ 53 - 69
tools/cmake/FindCheck.cmake

@@ -1,73 +1,57 @@
-# Find CHECK libraries
+# - Try to find the CHECK libraries
+#  Once done this will define
 #
-# This module defines:
 #  CHECK_FOUND - system has check
-#  CHECK_INCLUDE_DIRS - the check include directory
+#  CHECK_INCLUDE_DIR - the check include directory
 #  CHECK_LIBRARIES - check library
 #
-# If you have libcheck installed in a non-standard place, you can define
-# CHECK_PREFIX to tell cmake where it is.
-
-if(CHECK_PREFIX)
-    set(CHECK_PREFIX_INC "${CHECK_PREFIX}/include")
-    set(CHECK_PREFIX_LIB "${CHECK_PREFIX}/lib")
-endif()
-
-find_path(CHECK_INCLUDE_DIRS check.h "${CHECK_PREFIX_INC}")
-find_library(CHECK_LIBRARY check HINTS "${CHECK_PREFIX_LIB}")
-
-if(WIN32)
-
-    find_library(COMPAT_LIBRARY compat HINTS "${CHECK_PREFIX_LIB}")
-    set(CHECK_LIBRARIES "${CHECK_LIBRARY}" "${COMPAT_LIBRARY}")
-
-
-    include(FindPackageHandleStandardArgs)
-    find_package_handle_standard_args(CHECK DEFAULT_MSG	CHECK_INCLUDE_DIRS CHECK_LIBRARIES)
-
-    mark_as_advanced(CHECK_INCLUDE_DIRS CHECK_LIBRARIES)
-else()
-
-    INCLUDE( FindPkgConfig )
-
-    IF ( Check_FIND_REQUIRED )
-        SET( _pkgconfig_REQUIRED "REQUIRED" )
-    ELSE( Check_FIND_REQUIRED )
-        SET( _pkgconfig_REQUIRED "" )
-    ENDIF ( Check_FIND_REQUIRED )
-
-    IF ( CHECK_MIN_VERSION )
-        PKG_SEARCH_MODULE( CHECK ${_pkgconfig_REQUIRED} check>=${CHECK_MIN_VERSION} )
-    ELSE ( CHECK_MIN_VERSION )
-        PKG_SEARCH_MODULE( CHECK ${_pkgconfig_REQUIRED} check )
-    ENDIF ( CHECK_MIN_VERSION )
-
-    # Look for CHECK include dir and libraries
-    IF( NOT CHECK_FOUND AND NOT PKG_CONFIG_FOUND )
-
-        SET(CHECK_LIBRARIES "CHECK_LIBRARIES-NOTFOUND")
-        FIND_LIBRARY( SUBUNIT_LIBRARY NAMES subunit HINTS "${CHECK_PREFIX_LIB}")
-
-        IF ( CHECK_INCLUDE_DIRS AND CHECK_LIBRARY )
-            SET(CHECK_LIBRARIES "${CHECK_LIBRARY}")
-            if ( SUBUNIT_LIBRARY )
-                LIST(APPEND CHECK_LIBRARIES "${SUBUNIT_LIBRARY}")
-            endif()
-            SET( CHECK_FOUND 1 )
-            IF ( NOT Check_FIND_QUIETLY )
-                MESSAGE ( STATUS "Found CHECK: ${CHECK_LIBRARIES}" )
-            ENDIF ( NOT Check_FIND_QUIETLY )
-        ELSE ( CHECK_INCLUDE_DIRS AND CHECK_LIBRARIES )
-            IF ( Check_FIND_REQUIRED )
-                MESSAGE( FATAL_ERROR "Could NOT find CHECK" )
-            ELSE ( Check_FIND_REQUIRED )
-                IF ( NOT Check_FIND_QUIETLY )
-                    MESSAGE( STATUS "Could NOT find CHECK" )
-                ENDIF ( NOT Check_FIND_QUIETLY )
-            ENDIF ( Check_FIND_REQUIRED )
-        ENDIF ( CHECK_INCLUDE_DIRS AND CHECK_LIBRARY )
-    ENDIF( NOT CHECK_FOUND AND NOT PKG_CONFIG_FOUND )
-
-    # Hide advanced variables from CMake GUIs
-    MARK_AS_ADVANCED( CHECK_INCLUDE_DIRS CHECK_LIBRARIES )
-endif()
+#  This configuration file for finding libcheck is originally from
+#  the opensync project. The originally was downloaded from here:
+#  opensync.org/browser/branches/3rd-party-cmake-modules/modules/FindCheck.cmake
+#
+#  Copyright (c) 2007 Daniel Gollub <dgollub@suse.de>
+#  Copyright (c) 2007 Bjoern Ricks  <b.ricks@fh-osnabrueck.de>
+#
+#  Redistribution and use is allowed according to the terms of the New
+#  BSD license.
+#  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+INCLUDE( FindPkgConfig )
+
+# Take care about check.pc settings
+PKG_SEARCH_MODULE( CHECK check )
+
+# Look for CHECK include dir and libraries
+IF( NOT CHECK_FOUND )
+	IF ( CHECK_INSTALL_DIR )
+		MESSAGE ( STATUS "Using override CHECK_INSTALL_DIR to find check" )
+		SET ( CHECK_INCLUDE_DIR  "${CHECK_INSTALL_DIR}/include" )
+		FIND_LIBRARY( CHECK_LIBRARY NAMES check PATHS "${CHECK_INSTALL_DIR}/lib" )
+		FIND_LIBRARY( COMPAT_LIBRARY NAMES compat PATHS "${CHECK_INSTALL_DIR}/lib" )
+	ELSE ( CHECK_INSTALL_DIR )
+		FIND_PATH( CHECK_INCLUDE_DIR check.h )
+		FIND_LIBRARY( CHECK_LIBRARY NAMES check )
+		FIND_LIBRARY( COMPAT_LIBRARY NAMES compat )
+	ENDIF ( CHECK_INSTALL_DIR )
+
+    SET ( CHECK_LIBRARIES "${CHECK_LIBRARY}" "${COMPAT_LIBRARY}" )
+
+	IF ( CHECK_INCLUDE_DIR AND CHECK_LIBRARIES )
+		SET( CHECK_FOUND 1 )
+		IF ( NOT Check_FIND_QUIETLY )
+			MESSAGE ( STATUS "Found CHECK: ${CHECK_LIBRARIES}" )
+		ENDIF ( NOT Check_FIND_QUIETLY )
+	ELSE ( CHECK_INCLUDE_DIR AND CHECK_LIBRARIES )
+		IF ( Check_FIND_REQUIRED )
+			MESSAGE( FATAL_ERROR "Could NOT find CHECK" )
+		ELSE ( Check_FIND_REQUIRED )
+			IF ( NOT Check_FIND_QUIETLY )
+				MESSAGE( STATUS "Could NOT find CHECK" )	
+			ENDIF ( NOT Check_FIND_QUIETLY )
+		ENDIF ( Check_FIND_REQUIRED )
+	ENDIF ( CHECK_INCLUDE_DIR AND CHECK_LIBRARIES )
+ENDIF( NOT CHECK_FOUND )
+
+# Hide advanced variables from CMake GUIs
+MARK_AS_ADVANCED( CHECK_INCLUDE_DIR CHECK_LIBRARIES CHECK_LIBRARY COMPAT_LIBRARY)