# -DBUILD_DOC_ONLY - only doxygen documentation is build
# -DBUILD_DOC - build also doxygen documentation
# -DBUILD_EXAMPLES - build also sample applications
+# -DBUILD_TESTS - build also tests
########################################################
########################################################
SET(LIBNAME ${PROJECT_NAME})
+IF(BUILD_TESTS)
+ SET(PKG_MODULES
+ ${PKG_MODULES} cmocka>=1.0
+ )
+ENDIF()
+
+IF(BUILD_SHARED_LIBS)
+ SET(PKG_MODULES
+ ${PKG_MODULES}
+ libusb-1.0
+ dlog
+ )
+ENDIF()
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})
+
IF(BUILD_SHARED_LIBS)
SET(HOST_CAPI_SRCS
SET(INCLUDEDIR "${PREFIX}/include")
SET(DATADIR "${PREFIX}/share/${PACKAGE}/data")
- SET(PKG_MODULES
- libusb-1.0
- dlog
- )
-
- INCLUDE(FindPkgConfig)
- pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})
FOREACH(flag ${pkgs_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
)
ENDIF(BUILD_DOC)
+
+IF(BUILD_TESTS)
+ ENABLE_TESTING()
+ SET( TESTS_SRCS
+ tests/libhusb-test.c
+ tests/libusb-wrap.c
+ src/libhusb.c
+ )
+
+ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
+ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+ FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ ENDFOREACH(flag)
+
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -g -Wall -lcmocka")
+ MESSAGE("FLAGS: ${CMAKE_C_FLAGS}")
+ MESSAGE("PKGS_LDFLAGS: ${pkgs_LDFLAGS}")
+
+ ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
+ ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+
+ SET(TESTS_SRCS
+ ${TESTS_SRCS}
+ )
+
+ ADD_EXECUTABLE(${PROJECT_NAME}-tests ${TESTS_SRCS})
+ TARGET_LINK_LIBRARIES(${PROJECT_NAME}-tests ${pkgs_LDFLAGS})
+ ADD_TEST(NAME ${PROJECT_NAME}-tests COMMAND ${PROJECT_NAME}-tests)
+
+ ADD_DEFINITIONS("-DGD_EXPORT_SYMBOLS")
+
+ENDIF(BUILD_TESTS)
BuildRequires: pkgconfig(dlog)
BuildRequires: libattr-devel
BuildRequires: libcap-devel
+BuildRequires: pkgconfig(cmocka)
BuildRequires: pkgconfig(libsmack)
BuildRequires: pkgconfig(libsystemd-daemon)
BuildRequires: pkgconfig(libsystemd-journal)
-DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DLIB_INSTALL_DIR=%{_libdir} \
+ -DBUILD_TESTS=1 \
-DSYSTEMD_DIR=%{_unitdir}
%__make %{?_smp_mflags}
+make test
%install
rm -rf %{buildroot}