From 486b601ecb6d79c90eadc4dda0981e25e6a7ba1d Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Thu, 3 Mar 2016 17:15:57 +0100 Subject: build: Move debugging switch to correct CMakeLists This moves the debugging switch down to the CMakeList associated with every program or library. It allows to build apps individually with debugging info on or off. --- src/lib/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/lib') diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 2e0d6b6b..535726a9 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -15,4 +15,9 @@ set(SOURCE_FILES add_library(ouroboros SHARED ${SOURCE_FILES}) +include(MacroAddCompileFlags) +if (CMAKE_BUILD_TYPE MATCHES Debug) + MACRO_ADD_COMPILE_FLAGS(ouroboros -DCONFIG_OUROBOROS_DEBUG) +endif (CMAKE_BUILD_TYPE MATCHES Debug) + install(TARGETS ouroboros LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) -- cgit v1.2.3 From f9c16675dc625c124345bb440aa9604af61ddb8d Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Mon, 7 Mar 2016 15:13:34 +0100 Subject: build: Add check target, fix packaging This adds a build target 'check', which executes a test suite for every daemon/library. Every test suite consists of a test driver that executes a function in a file with the same name as the function. The compile_debug script executes the 'check' target to validate there are no regressions. Packaging is also fixed and the prototype can be shipped as a tarball. --- CMakeLists.txt | 16 +++++++++------- compile_debug.sh | 2 +- include/ouroboros/CMakeLists.txt | 18 ++++++++++++++---- ouroboros.pc.in | 2 +- src/dad/CMakeLists.txt | 5 ++++- src/dad/tests/CMakeLists.txt | 19 +++++++++++++++++++ src/ipcpd/CMakeLists.txt | 5 ++++- src/ipcpd/tests/CMakeLists.txt | 19 +++++++++++++++++++ src/irmd/CMakeLists.txt | 5 ++++- src/irmd/tests/CMakeLists.txt | 19 +++++++++++++++++++ src/lib/CMakeLists.txt | 4 +++- src/lib/tests/CMakeLists.txt | 20 ++++++++++++++++++++ src/lib/tests/linked_list.c | 26 ++++++++++++++++++++++++++ src/tools/irm/CMakeLists.txt | 2 +- tests/CMakeLists.txt | 0 15 files changed, 144 insertions(+), 18 deletions(-) create mode 100644 src/dad/tests/CMakeLists.txt create mode 100644 src/ipcpd/tests/CMakeLists.txt create mode 100644 src/irmd/tests/CMakeLists.txt create mode 100644 src/lib/tests/CMakeLists.txt create mode 100644 src/lib/tests/linked_list.c delete mode 100644 tests/CMakeLists.txt (limited to 'src/lib') diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bfbeb47..1041197c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,6 @@ cmake_minimum_required(VERSION 2.8.12.2) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") -#set(CMAKE_VERBOSE_MAKEFILE ON) project(ouroboros C) @@ -41,14 +40,13 @@ configure_file( "${CMAKE_CURRENT_BINARY_DIR}/ouroboros.pc" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ouroboros.pc" - DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig") + DESTINATION "lib/pkgconfig") + +enable_testing() +add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) add_subdirectory(include) add_subdirectory(src) -add_subdirectory(tests) - -#include(FeatureSummary) -#print_enabled_features() # Uninstall target configure_file( @@ -60,11 +58,15 @@ add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/cmake/cmake_uninstall.cmake) set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PACKAGE_DESCRIPTION}") -set(CPACK_PACKAGE_VENDOR "Unknown") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") set(CPACK_PACKAGE_VERSION_MAJOR "${PACKAGE_VERSION_MAJOR}") set(CPACK_PACKAGE_VERSION_MINOR "${PACKAGE_VERSION_MINOR}") set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") +set(CPACK_GENERATOR "TGZ") +set(CPACK_SOURCE_GENERATOR "TGZ") include(CPack) + +#include(FeatureSummary) +#print_enabled_features() diff --git a/compile_debug.sh b/compile_debug.sh index 0b21b336..3ea1e039 100755 --- a/compile_debug.sh +++ b/compile_debug.sh @@ -32,4 +32,4 @@ cd $DEBUGDIR cmake -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_BUILD_TYPE=Debug ../.. -make +make && make check diff --git a/include/ouroboros/CMakeLists.txt b/include/ouroboros/CMakeLists.txt index b4f04cf2..dc827fbe 100644 --- a/include/ouroboros/CMakeLists.txt +++ b/include/ouroboros/CMakeLists.txt @@ -1,6 +1,16 @@ -file(GLOB_RECURSE HEADER_FILES *.h) +set(HEADER_FILES + bitmap.h + cdap.h + common.h + da.h + dev.h + du_buff.h + ipcp.h + irm.h + list.h + logs.h + sockets.h +) install(FILES ${HEADER_FILES} - DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/ouroboros) - -add_custom_target(qtcreator-workaround SOURCES ${HEADER_FILES}) + DESTINATION include/ouroboros) diff --git a/ouroboros.pc.in b/ouroboros.pc.in index 79b139c0..b10ce9a4 100644 --- a/ouroboros.pc.in +++ b/ouroboros.pc.in @@ -1,6 +1,6 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -libdir=${exec_prefix}/lib64@LIB_SUFFIX@ +libdir=${exec_prefix}/lib@LIB_SUFFIX@ includedir=${prefix}/include Name: @PROJECT_NAME@ diff --git a/src/dad/CMakeLists.txt b/src/dad/CMakeLists.txt index ef0a3a1e..1f9f4f42 100644 --- a/src/dad/CMakeLists.txt +++ b/src/dad/CMakeLists.txt @@ -18,4 +18,7 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) MACRO_ADD_COMPILE_FLAGS(dad -DCONFIG_OUROBOROS_DEBUG) endif (CMAKE_BUILD_TYPE MATCHES Debug) -install(TARGETS dad RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) +install(TARGETS dad RUNTIME DESTINATION bin) + +# Enable once dad has tests +# add_subdirectory(tests) diff --git a/src/dad/tests/CMakeLists.txt b/src/dad/tests/CMakeLists.txt new file mode 100644 index 00000000..68bd762d --- /dev/null +++ b/src/dad/tests/CMakeLists.txt @@ -0,0 +1,19 @@ +get_filename_component(tmp ".." ABSOLUTE) +get_filename_component(src_folder "${tmp}" NAME) + +create_test_sourcelist(${src_folder}_tests test_suite.c + # Add new tests here +) + +add_executable(${src_folder}_test EXCLUDE_FROM_ALL ${${src_folder}_tests}) +target_link_libraries(${src_folder}_test ouroboros) + +add_dependencies(check ${src_folder}_test) + +set(tests_to_run ${${src_folder}_tests}) +remove(tests_to_run test_suite.c) + +foreach(test ${tests_to_run}) + get_filename_component(test_name ${test} NAME_WE) + add_test(${test_name} ${C_TEST_PATH}/${src_folder}_test ${test_name}) +endforeach(test) diff --git a/src/ipcpd/CMakeLists.txt b/src/ipcpd/CMakeLists.txt index 8aec4a97..df6ba5e1 100644 --- a/src/ipcpd/CMakeLists.txt +++ b/src/ipcpd/CMakeLists.txt @@ -19,4 +19,7 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) MACRO_ADD_COMPILE_FLAGS(ipcpd -DCONFIG_OUROBOROS_DEBUG) endif (CMAKE_BUILD_TYPE MATCHES Debug) -install(TARGETS ipcpd RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) +install(TARGETS ipcpd RUNTIME DESTINATION bin) + +# Enable once ipcpd has tests +# add_subdirectory(tests) diff --git a/src/ipcpd/tests/CMakeLists.txt b/src/ipcpd/tests/CMakeLists.txt new file mode 100644 index 00000000..68bd762d --- /dev/null +++ b/src/ipcpd/tests/CMakeLists.txt @@ -0,0 +1,19 @@ +get_filename_component(tmp ".." ABSOLUTE) +get_filename_component(src_folder "${tmp}" NAME) + +create_test_sourcelist(${src_folder}_tests test_suite.c + # Add new tests here +) + +add_executable(${src_folder}_test EXCLUDE_FROM_ALL ${${src_folder}_tests}) +target_link_libraries(${src_folder}_test ouroboros) + +add_dependencies(check ${src_folder}_test) + +set(tests_to_run ${${src_folder}_tests}) +remove(tests_to_run test_suite.c) + +foreach(test ${tests_to_run}) + get_filename_component(test_name ${test} NAME_WE) + add_test(${test_name} ${C_TEST_PATH}/${src_folder}_test ${test_name}) +endforeach(test) diff --git a/src/irmd/CMakeLists.txt b/src/irmd/CMakeLists.txt index fb777e3d..b7e3cde4 100644 --- a/src/irmd/CMakeLists.txt +++ b/src/irmd/CMakeLists.txt @@ -18,4 +18,7 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) MACRO_ADD_COMPILE_FLAGS(irmd -DCONFIG_OUROBOROS_DEBUG) endif (CMAKE_BUILD_TYPE MATCHES Debug) -install(TARGETS irmd RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) +install(TARGETS irmd RUNTIME DESTINATION bin) + +# Enable once irmd has tests +# add_subdirectory(tests) diff --git a/src/irmd/tests/CMakeLists.txt b/src/irmd/tests/CMakeLists.txt new file mode 100644 index 00000000..68bd762d --- /dev/null +++ b/src/irmd/tests/CMakeLists.txt @@ -0,0 +1,19 @@ +get_filename_component(tmp ".." ABSOLUTE) +get_filename_component(src_folder "${tmp}" NAME) + +create_test_sourcelist(${src_folder}_tests test_suite.c + # Add new tests here +) + +add_executable(${src_folder}_test EXCLUDE_FROM_ALL ${${src_folder}_tests}) +target_link_libraries(${src_folder}_test ouroboros) + +add_dependencies(check ${src_folder}_test) + +set(tests_to_run ${${src_folder}_tests}) +remove(tests_to_run test_suite.c) + +foreach(test ${tests_to_run}) + get_filename_component(test_name ${test} NAME_WE) + add_test(${test_name} ${C_TEST_PATH}/${src_folder}_test ${test_name}) +endforeach(test) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 535726a9..5dad9153 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -20,4 +20,6 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) MACRO_ADD_COMPILE_FLAGS(ouroboros -DCONFIG_OUROBOROS_DEBUG) endif (CMAKE_BUILD_TYPE MATCHES Debug) -install(TARGETS ouroboros LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) +install(TARGETS ouroboros LIBRARY DESTINATION lib) + +add_subdirectory(tests) diff --git a/src/lib/tests/CMakeLists.txt b/src/lib/tests/CMakeLists.txt new file mode 100644 index 00000000..2b02768b --- /dev/null +++ b/src/lib/tests/CMakeLists.txt @@ -0,0 +1,20 @@ +get_filename_component(tmp ".." ABSOLUTE) +get_filename_component(src_folder "${tmp}" NAME) + +create_test_sourcelist(${src_folder}_tests test_suite.c + # Add new tests here + linked_list.c +) + +add_executable(${src_folder}_test EXCLUDE_FROM_ALL ${${src_folder}_tests}) +target_link_libraries(${src_folder}_test ouroboros) + +add_dependencies(check ${src_folder}_test) + +set(tests_to_run ${${src_folder}_tests}) +remove(tests_to_run test_suite.c) + +foreach(test ${tests_to_run}) + get_filename_component(test_name ${test} NAME_WE) + add_test(${test_name} ${C_TEST_PATH}/${src_folder}_test ${test_name}) +endforeach(test) diff --git a/src/lib/tests/linked_list.c b/src/lib/tests/linked_list.c new file mode 100644 index 00000000..2239b065 --- /dev/null +++ b/src/lib/tests/linked_list.c @@ -0,0 +1,26 @@ +/* + * Ouroboros - Copyright (C) 2016 + * + * Test of the linked list + * + * Sander Vrijders + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +int linked_list(int argc, char ** argv) +{ + return 0; +} diff --git a/src/tools/irm/CMakeLists.txt b/src/tools/irm/CMakeLists.txt index 82c73e38..8e191d7e 100644 --- a/src/tools/irm/CMakeLists.txt +++ b/src/tools/irm/CMakeLists.txt @@ -13,4 +13,4 @@ add_executable (irm ${SOURCE_FILES}) target_link_libraries (irm LINK_PUBLIC ouroboros) -install(TARGETS irm RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) +install(TARGETS irm RUNTIME DESTINATION bin) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt deleted file mode 100644 index e69de29b..00000000 -- cgit v1.2.3