diff --git a/CMakeLists.txt b/CMakeLists.txt index 6824167..4853039 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ project(v4l2rtspserver) option(COVERAGE "Coverage" OFF) set(ALSA ON CACHE BOOL "use ALSA if available") +set(STATICSTDCPP ON CACHE BOOL "use gcc static lib if available") set(LOG4CPP OFF CACHE BOOL "use log4cpp if available") set(LIVE555URL http://www.live555.com/liveMedia/public/live555-latest.tar.gz CACHE STRING "live555 url") set(LIVE555CFLAGS -DBSD=1 -DSOCKLEN_T=socklen_t -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -DALLOW_RTSP_SERVER_PORT_REUSE=1 CACHE STRING "live555 CFGLAGS") @@ -19,7 +20,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake/") # set version based on git find_package(Git) if(GIT_FOUND) - EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty OUTPUT_VARIABLE VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) + EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR} describe --tags --always --dirty OUTPUT_VARIABLE VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) STRING(REGEX REPLACE "^v(.*)" "\\1" VERSION "${VERSION}") add_definitions("-DVERSION=\"${VERSION}\"") endif() @@ -118,14 +119,16 @@ target_include_directories(libv4l2rtspserver PUBLIC libv4l2cpp/inc) target_link_libraries (libv4l2rtspserver libv4l2cpp) # static link of stdc++ if available -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-static-libgcc" CXX_SUPPORTS_STATIC_LIBGCC) -if (CXX_SUPPORTS_STATIC_LIBGCC) - target_link_libraries (${PROJECT_NAME} -static-libgcc) -endif() -CHECK_CXX_COMPILER_FLAG("-static-libstdc++" CXX_SUPPORTS_STATIC_LIBSTDCPP) -if (CXX_SUPPORTS_STATIC_LIBSTDCPP) - target_link_libraries (${PROJECT_NAME} -static-libstdc++) +if (STATICSTDCPP) + include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG("-static-libgcc" CXX_SUPPORTS_STATIC_LIBGCC) + if (CXX_SUPPORTS_STATIC_LIBGCC) + target_link_libraries (${PROJECT_NAME} -static-libgcc) + endif() + CHECK_CXX_COMPILER_FLAG("-static-libstdc++" CXX_SUPPORTS_STATIC_LIBSTDCPP) + if (CXX_SUPPORTS_STATIC_LIBSTDCPP) + target_link_libraries (${PROJECT_NAME} -static-libstdc++) + endif() endif() #testing diff --git a/main.cpp b/main.cpp index a26cf8b..9581258 100755 --- a/main.cpp +++ b/main.cpp @@ -136,7 +136,7 @@ int main(int argc, char** argv) // decode parameters int c = 0; - while ((c = getopt (argc, argv, "v::Q:O:b:" "I:P:p:m::u:M:ct:S::x:" "R:U:" "rwBsf::F:W:H:G:" "A:C:a:" "Vh")) != -1) + while ((c = getopt (argc, argv, "v::Q:O:b:" "I:P:p:m::u:M::ct:S::x:" "R:U:" "rwBsf::F:W:H:G:" "A:C:a:" "Vh")) != -1) { switch (c) { @@ -151,7 +151,7 @@ int main(int argc, char** argv) case 'p': rtspOverHTTPPort = atoi(optarg); break; case 'u': url = optarg; break; case 'm': multicast = true; murl = optarg ? optarg : murl; break; - case 'M': multicast = true; maddr = optarg; break; + case 'M': multicast = true; maddr = optarg ? optarg : maddr; break; case 'c': repeatConfig = false; break; case 't': timeout = atoi(optarg); break; case 'S': hlsSegment = optarg ? atoi(optarg) : defaultHlsSegment; break; diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index c26f9b8..57a67bf 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -38,4 +38,4 @@ v4l2rtspserver: command: v4l2rtspserver -b $SNAP/share/v4l2rtspserver/ -P "$(snapctl get rtsp-port)" "$(snapctl get devices)" daemon: simple - plugs: [network-bind] + plugs: [network-bind, camera, alsa]