diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..b300b70ae7 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "c/cmake/common"] + path = c/cmake/common + url = https://github.com/swift-nav/cmake.git diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt index 8c21db0aa4..0ba59c46cf 100644 --- a/c/CMakeLists.txt +++ b/c/CMakeLists.txt @@ -1,9 +1,16 @@ -cmake_minimum_required(VERSION 3.9) +cmake_minimum_required(VERSION 3.2) project(libsbp) -set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake" "${CMAKE_CURRENT_LIST_DIR}/cmake/common") include(GNUInstallDirs) +include(CCache) +include(SwiftCmakeOptions) +swift_create_project_options( + HAS_TESTS + HAS_DOCS + TEST_PACKAGES "Check" + ) ########################################################## # Set some reasonable default compiler flags. @@ -19,5 +26,9 @@ else() endif() add_subdirectory(src) -add_subdirectory(docs) -add_subdirectory(test) +if(libsbp_BUILD_DOCS) + add_subdirectory(docs) +endif() +if(libsbp_BUILD_TESTS) + add_subdirectory(test) +endif() diff --git a/c/cmake/FindCheck.cmake b/c/cmake/FindCheck.cmake deleted file mode 100644 index 8ad818f42b..0000000000 --- a/c/cmake/FindCheck.cmake +++ /dev/null @@ -1,55 +0,0 @@ -# - Try to find the CHECK libraries -# Once done this will define -# -# CHECK_FOUND - system has check -# CHECK_INCLUDE_DIRS - the check include directory -# CHECK_LIBRARIES - check library -# -# Copyright (c) 2007 Daniel Gollub -# Copyright (c) 2007-2009 Bjoern Ricks -# -# 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 ) - -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 ) - - FIND_PATH( CHECK_INCLUDE_DIRS check.h ) - - FIND_LIBRARY( CHECK_LIBRARIES NAMES check ) - - IF ( CHECK_INCLUDE_DIRS 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_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_LIBRARIES ) -ENDIF( NOT CHECK_FOUND AND NOT PKG_CONFIG_FOUND ) - -# Hide advanced variables from CMake GUIs -MARK_AS_ADVANCED( CHECK_INCLUDE_DIRS CHECK_LIBRARIES ) - diff --git a/c/cmake/common b/c/cmake/common new file mode 160000 index 0000000000..ed44946e1a --- /dev/null +++ b/c/cmake/common @@ -0,0 +1 @@ +Subproject commit ed44946e1acf06acea6963393a56879caea600de diff --git a/c/test/CMakeLists.txt b/c/test/CMakeLists.txt index b874929b89..a0cccf94f5 100644 --- a/c/test/CMakeLists.txt +++ b/c/test/CMakeLists.txt @@ -1,38 +1,26 @@ -if (CMAKE_CROSSCOMPILING) - message(STATUS "Skipping unit tests, cross compiling") -else (CMAKE_CROSSCOMPILING) - - find_package(Check) - if (NOT CHECK_FOUND) - message(STATUS "Skipping unit tests, Check library not found!") - else (NOT CHECK_FOUND) - - set(TEST_LIBS ${TEST_LIBS} ${CHECK_LIBRARIES} pthread sbp m) - - # Check needs to be linked against Librt on Linux - if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - set(TEST_LIBS ${TEST_LIBS} rt) - endif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - - FILE(GLOB generated_c_sources auto*.c) - add_executable(test_libsbp check_main.c check_edc.c check_sbp.c ${generated_c_sources}) - - target_link_libraries(test_libsbp ${TEST_LIBS}) - set_target_properties(test_libsbp PROPERTIES - C_STANDARD 99 - C_STANDARD_REQUIRED ON) - - if(MSVC) - target_include_directories(test_libsbp PRIVATE ${PROJECT_SOURCE_DIR}/include/libsbp/) - else() - target_include_directories(test_libsbp PRIVATE ${PROJECT_SOURCE_DIR}/include/libsbp/ /usr/local/include/) - endif() - - add_custom_command( - TARGET test_libsbp POST_BUILD - COMMENT "Running unit tests" - COMMAND test_libsbp - ) - - endif (NOT CHECK_FOUND) -endif (CMAKE_CROSSCOMPILING) +set(TEST_LIBS ${TEST_LIBS} ${CHECK_LIBRARIES} pthread sbp m) + +# Check needs to be linked against Librt on Linux +if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + set(TEST_LIBS ${TEST_LIBS} rt) +endif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + +FILE(GLOB generated_c_sources auto*.c) +add_executable(test_libsbp check_main.c check_edc.c check_sbp.c ${generated_c_sources}) + +target_link_libraries(test_libsbp ${TEST_LIBS}) +set_target_properties(test_libsbp PROPERTIES + C_STANDARD 99 + C_STANDARD_REQUIRED ON) + +if(MSVC) + target_include_directories(test_libsbp PRIVATE ${PROJECT_SOURCE_DIR}/include/libsbp/) +else() + target_include_directories(test_libsbp PRIVATE ${PROJECT_SOURCE_DIR}/include/libsbp/ /usr/local/include/) +endif() + +add_custom_command( + TARGET test_libsbp POST_BUILD + COMMENT "Running unit tests" + COMMAND test_libsbp +) diff --git a/python/tests/sbp/client/test_driver.py b/python/tests/sbp/client/test_driver.py index e596506f1e..f773cf3b16 100755 --- a/python/tests/sbp/client/test_driver.py +++ b/python/tests/sbp/client/test_driver.py @@ -33,7 +33,7 @@ def tcp_server(handler): server_thread = threading.Thread(target=server.serve_forever) server_thread.daemon = True server_thread.start() - time.sleep(0.1) # wait for server to start + time.sleep(1) # wait for server to start return (ip, port) def test_tcp_logger():