v4l2rtspserver/CMakeLists.txt

106 lines
3.7 KiB
CMake
Raw Normal View History

2014-08-15 19:11:03 +00:00
cmake_minimum_required(VERSION 2.6)
# set project name from current directory
2014-08-15 20:33:40 +00:00
get_filename_component(BASENAME ${CMAKE_SOURCE_DIR} NAME)
project(${BASENAME})
2014-08-15 19:11:03 +00:00
2016-01-30 11:43:46 +00:00
option(COVERAGE "Coverage" OFF)
2014-09-05 19:33:27 +00:00
set(CMAKE_BUILD_TYPE DEBUG)
set(CMAKE_C_FLAGS "-Wall")
2017-05-14 20:06:19 +00:00
set(CMAKE_CXX_FLAGS "-std=c++11 -Wall")
2014-09-05 19:33:27 +00:00
2017-04-23 14:40:07 +00:00
find_package(Git)
if(GIT_FOUND)
EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty OUTPUT_VARIABLE VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
2017-12-16 17:12:44 +00:00
STRING(REGEX REPLACE "^v(.*)" "\\1" VERSION "${VERSION}")
2017-04-23 14:40:07 +00:00
add_definitions("-DVERSION=\"${VERSION}\"")
endif()
2016-01-30 11:43:46 +00:00
2014-08-15 19:11:03 +00:00
# define executable to build
2015-10-11 17:11:44 +00:00
include_directories("inc")
2014-08-15 19:11:03 +00:00
aux_source_directory(src SRC_FILES)
add_executable(${PROJECT_NAME} ${SRC_FILES})
2016-01-30 11:43:46 +00:00
if (COVERAGE)
set(COVERAGE_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_FLAGS}")
2017-05-25 16:26:23 +00:00
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_FLAGS}")
2016-01-30 11:43:46 +00:00
target_link_libraries(${PROJECT_NAME} gcov)
endif()
# v4l2wrapper
2015-10-11 17:11:44 +00:00
include_directories("v4l2wrapper/inc")
2017-05-25 16:26:23 +00:00
find_library(V4L2WRAPPER_LIBRARY libv4l2wrapper.a PATHS "." NO_CMAKE_FIND_ROOT_PATH)
if (NOT V4L2WRAPPER_LIBRARY)
2016-09-16 19:50:35 +00:00
message(STATUS "Installing v4l2wrapper")
2015-10-31 21:36:50 +00:00
EXEC_PROGRAM("git submodule init && git submodule update && make -C v4l2wrapper CC=${CMAKE_C_COMPILER} CFLAGS_EXTRA=--sysroot=${CMAKE_FIND_ROOT_PATH} && cp v4l2wrapper/libv4l2wrapper.a . && make -C v4l2wrapper clean")
2017-05-25 16:26:23 +00:00
find_library(V4L2WRAPPER_LIBRARY libv4l2wrapper.a PATHS "." NO_CMAKE_FIND_ROOT_PATH)
message(STATUS "v4l2wrapper built in V4L2WRAPPER_LIBRARY=${V4L2WRAPPER_LIBRARY}")
endif (NOT V4L2WRAPPER_LIBRARY)
target_link_libraries(${PROJECT_NAME} ${V4L2WRAPPER_LIBRARY})
2014-08-15 19:11:03 +00:00
#pthread
find_package (Threads)
target_link_libraries (${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT})
2016-06-19 17:15:51 +00:00
#ALSA
2017-05-25 16:26:23 +00:00
find_package(ALSA QUIET)
if (ALSA_LIBRARY)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_ALSA")
target_link_libraries (${PROJECT_NAME} ${ALSA_LIBRARY})
endif (ALSA_LIBRARY)
2016-06-19 17:15:51 +00:00
2014-11-22 14:35:59 +00:00
# LOG4CPP
find_path(LOG4CPP_INCLUDE_DIR log4cpp/Category.hh)
2017-12-09 16:18:36 +00:00
if (LOG4CPP_INCLUDE_DIR)
message(STATUS "Log4Cpp available")
2017-12-10 11:31:20 +00:00
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_LOG4CPP")
2017-12-09 16:18:36 +00:00
include_directories(${LOG4CPP_INCLUDE_DIR})
2016-09-16 19:50:35 +00:00
2017-12-09 16:18:36 +00:00
find_library(LOG4CPP_LIBRARY log4cpp)
target_link_libraries(${PROJECT_NAME} "${LOG4CPP_LIBRARY}")
endif (LOG4CPP_INCLUDE_DIR)
2014-11-22 14:35:59 +00:00
2014-08-15 19:11:03 +00:00
# live555
find_path(LIBLIVE555_INCLUDE_DIR liveMedia/liveMedia.hh)
if (NOT LIBLIVE555_INCLUDE_DIR)
2016-09-16 19:50:35 +00:00
message(STATUS "Installing liblivemedia-dev")
EXEC_PROGRAM("sudo apt-get install -y liblivemedia-dev")
2014-08-15 19:11:03 +00:00
endif (NOT LIBLIVE555_INCLUDE_DIR)
2016-09-16 19:50:35 +00:00
find_path(LIBLIVE555_INCLUDE_DIR liveMedia/liveMedia.hh)
2014-08-15 19:11:03 +00:00
foreach (LIBLIVE555_module groupsock liveMedia UsageEnvironment BasicUsageEnvironment)
include_directories(${LIBLIVE555_INCLUDE_DIR}/${LIBLIVE555_module})
endforeach (LIBLIVE555_module)
set(LIBLIVE555_LIBRARIES "")
foreach (LIBLIVE555_module groupsock liveMedia UsageEnvironment BasicUsageEnvironment)
find_library( ${LIBLIVE555_module}_LIBRARY ${LIBLIVE555_module} )
if ( ${LIBLIVE555_module}_LIBRARY )
set(LIBLIVE555_LIBRARIES ${LIBLIVE555_LIBRARIES} ${${LIBLIVE555_module}_LIBRARY})
endif ( ${LIBLIVE555_module}_LIBRARY )
endforeach (LIBLIVE555_module)
target_link_libraries(${PROJECT_NAME} ${LIBLIVE555_LIBRARIES})
2016-01-30 11:43:46 +00:00
#testing
enable_testing()
add_test(help ./${PROJECT_NAME} -h)
2014-08-15 20:33:40 +00:00
# package
2014-08-15 22:27:47 +00:00
install (TARGETS ${PROJECT_NAME} DESTINATION bin)
2014-08-15 20:33:40 +00:00
SET(CPACK_GENERATOR "DEB")
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Michel Promonet")
2017-07-01 13:20:09 +00:00
SET(CPACK_DEBIAN_PACKAGE_DEPENDS livemedia-utils,liblog4cpp5)
2014-08-15 20:33:40 +00:00
SET(CPACK_PACKAGE_CONTACT "michel.promonet@free.fr")
2015-11-21 18:03:31 +00:00
SET(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR})
2015-10-17 12:45:34 +00:00
find_package(Git)
2017-04-23 14:40:07 +00:00
if(VERSION)
2015-10-17 12:45:34 +00:00
SET(CPACK_PACKAGE_VERSION "${VERSION}")
endif()
2014-08-15 20:33:40 +00:00
INCLUDE(CPack)