diff options
Diffstat (limited to 'lib/avtp_pipeline/platform/Linux/CMakeLists.txt')
-rw-r--r-- | lib/avtp_pipeline/platform/Linux/CMakeLists.txt | 227 |
1 files changed, 140 insertions, 87 deletions
diff --git a/lib/avtp_pipeline/platform/Linux/CMakeLists.txt b/lib/avtp_pipeline/platform/Linux/CMakeLists.txt index 039d0218..14f427cc 100644 --- a/lib/avtp_pipeline/platform/Linux/CMakeLists.txt +++ b/lib/avtp_pipeline/platform/Linux/CMakeLists.txt @@ -1,6 +1,6 @@ -cmake_minimum_required ( VERSION 2.6 ) +cmake_minimum_required ( VERSION 2.6 ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") -project ( AVB ) +project ( AVB ) # Some CMake voodoo to set the default build type IF(NOT CMAKE_BUILD_TYPE) @@ -20,7 +20,7 @@ STRING ( TOUPPER "${CMAKE_BUILD_TYPE}_BUILD" BUILD_TYPE_STRING ) SET ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D${BUILD_TYPE_STRING}" ) # CMake automatically adds some compiler flags based on CMAKE_BUILD_TYPE -# for Debug: "-g" +# for Debug: "-g" # for RelWithDebInfo: "-O2 -g" # for Release: "-03 -DNDEBUG" # for MinSizeRel: "-0s -DNDEBUG" @@ -66,10 +66,13 @@ MESSAGE ("-- SDK_INSTALL_SDK_EAVB_DIR : ${SDK_INSTALL_SDK_EAVB_DIR}") # Turn on all build warnings set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wall" ) +# Turn off strict aliasing +set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing" ) + # Set default visibility of symbols (requires GCC version > 4) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden" ) -# Need this to use pthread attributes +# Need this to use pthread attributes set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE" ) # Increase ini parser's max line length @@ -80,6 +83,17 @@ if ( GSTREAMER_1_0) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGSTREAMER_1_0" ) endif () +# For AVDECC, disable features we won't need. +if (DEFINED AVB_FEATURE_AVDECC) + if ( AVB_FEATURE_AVDECC ) + set ( AVB_FEATURE_FQTSS 0 ) + set ( AVB_FEATURE_GSTREAMER 0 ) + set ( AVB_FEATURE_ENDPOINT 0 ) + set ( AVB_FEATURE_IGB 0 ) + set ( IGB_LAUNCHTIME_ENABLED 0 ) + endif () +endif () + # Default feature flags if (NOT DEFINED AVB_FEATURE_FQTSS) set ( AVB_FEATURE_FQTSS 1 ) @@ -92,6 +106,10 @@ endif () if (NOT DEFINED AVB_FEATURE_ENDPOINT) set ( AVB_FEATURE_ENDPOINT 0 ) endif () +# Default AVDECC feature +if (NOT DEFINED AVB_FEATURE_AVDECC) + set ( AVB_FEATURE_AVDECC 0 ) +endif () if (NOT DEFINED AVB_FEATURE_IGB) set ( AVB_FEATURE_IGB 1 ) endif () @@ -115,10 +133,13 @@ endif () if (AVB_FEATURE_ENDPOINT) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAVB_FEATURE_ENDPOINT=1" ) endif () +if (AVB_FEATURE_AVDECC) + set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAVB_FEATURE_AVDECC=1" ) +endif () if (AVB_FEATURE_IGB) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAVB_FEATURE_IGB=1" ) + set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAVB_FEATURE_IGB=1" ) else () - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAVB_FEATURE_IGB=0" ) + set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAVB_FEATURE_IGB=0" ) endif () #Export Platform defines @@ -148,13 +169,13 @@ if (NOT DEFINED SDK_DOC_ONLY) if (NOT DEFINED ARCH) MESSAGE ( FATAL_ERROR "Aborting: ARCH not set" ) - endif () + endif () if (NOT DEFINED LINUX_KERNEL_DIR) MESSAGE ( FATAL_ERROR "Aborting: LINUX_KERNEL_DIR not set" ) - endif () + endif () if (NOT DEFINED GLIB_PKG_INCLUDE_DIRS OR NOT DEFINED GLIB_PKG_LIBRARIES) MESSAGE ( FATAL_ERROR "Aborting: glib-2.0 library not found" ) - endif () + endif () if (AVB_FEATURE_GSTREAMER) if (NOT DEFINED GST_PKG_INCLUDE_DIRS OR NOT DEFINED GST_PKG_LIBRARIES) MESSAGE ( FATAL_ERROR "Aborting: gstreamer library not found" ) @@ -162,7 +183,7 @@ if (NOT DEFINED SDK_DOC_ONLY) endif () if (NOT DEFINED ALSA_INCLUDE_DIRS) MESSAGE ( FATAL_ERROR "Aborting: alsa library not found" ) - endif () + endif () endif() # Add /usr/lib to library search path @@ -188,7 +209,7 @@ link_directories ( ${PLATFORM_LINK_DIRECTORIES} ) # These should be cleaned up to limit the dependencies # across components. # -include_directories( +include_directories( ${AVB_TCAL_DIR} ${AVB_HAL_DIR} ${AVB_HAL_DIR}/mcr @@ -197,10 +218,16 @@ include_directories( ${AVB_SRC_DIR}/include ${AVB_OSAL_DIR}/avtp ${AVB_OSAL_DIR}/tl - ${AVB_SRC_DIR}/avtp + ${AVB_SRC_DIR}/avtp + ${AVB_SRC_DIR}/avdecc + ${AVB_SRC_DIR}/acmp + ${AVB_SRC_DIR}/adp + ${AVB_SRC_DIR}/aecp + ${AVB_SRC_DIR}/aem ${AVB_SRC_DIR}/endpoint ${AVB_SRC_DIR}/srp ${AVB_SRC_DIR}/maap + ${AVB_SRC_DIR}/shaper ${AVB_SRC_DIR}/inih ${AVB_SRC_DIR}/map_mjpeg ${AVB_SRC_DIR}/map_mpeg2ts @@ -215,9 +242,12 @@ include_directories( ${AVB_SRC_DIR}/mediaq ${AVB_SRC_DIR}/rawsock ${AVB_SRC_DIR}/qmgr - ${AVB_SRC_DIR}/tl + ${AVB_SRC_DIR}/tl ${AVB_SRC_DIR}/util + ${AVB_SRC_DIR}/avdecc_msg + ${AVB_OSAL_DIR}/avdecc ${AVB_OSAL_DIR}/endpoint + ${AVB_OSAL_DIR}/avdecc_msg ${AVB_SRC_DIR}/../common ${AVB_SRC_DIR}/mcs ) @@ -243,14 +273,24 @@ add_subdirectory ( inih ) add_subdirectory ( rawsock ) add_subdirectory ( openavb_common ) -add_subdirectory ( avtp ) -add_subdirectory ( mediaq ) -add_subdirectory ( mcr ) -add_subdirectory ( mcs ) -add_subdirectory ( tl ) -add_subdirectory ( qmgr ) -if (AVB_FEATURE_ENDPOINT) - add_subdirectory ( endpoint ) +# TODO: Make the above avbBase, then make avbTl and avbAvdecc from below + +if (AVB_FEATURE_AVDECC) + add_subdirectory ( avdecc ) + add_subdirectory ( acmp ) + add_subdirectory ( adp ) + add_subdirectory ( aecp ) + add_subdirectory ( aem ) +else () + add_subdirectory ( avtp ) + add_subdirectory ( mediaq ) + add_subdirectory ( mcr ) + add_subdirectory ( mcs ) + add_subdirectory ( tl ) + add_subdirectory ( qmgr ) + if (AVB_FEATURE_ENDPOINT) + add_subdirectory ( endpoint ) + endif () endif () add_library ( avbTl ${SRC_FILES} ) @@ -261,80 +301,93 @@ endif () install ( TARGETS avbTl ARCHIVE DESTINATION ${AVB_INSTALL_LIB_DIR} ) -# avb_host (openavb_host and openavb_harness) -add_subdirectory ( ${AVB_OSAL_DIR}/avb_host ) - -# mapping modules -macro (add_map_mod MAP_NAME) - SET ( SRC_FILES "" ) - add_subdirectory ( ${MAP_NAME} ) - add_library ( ${MAP_NAME} ${SRC_FILES} ) - install ( TARGETS ${MAP_NAME} ARCHIVE DESTINATION ${AVB_INSTALL_LIB_DIR} ) -endmacro() -add_map_mod ( "map_ctrl" ) -add_map_mod ( "map_mjpeg" ) -add_map_mod ( "map_mpeg2ts" ) -add_map_mod ( "map_null" ) -add_map_mod ( "map_pipe" ) -add_map_mod ( "map_aaf_audio" ) -add_map_mod ( "map_uncmp_audio" ) -add_map_mod ( "map_h264" ) - -# Interface modules (common) -macro (add_intf_mod INTF_NAME) - SET ( SRC_FILES "" ) - add_subdirectory ( ${INTF_NAME} ) - add_library ( ${INTF_NAME} ${SRC_FILES} ) - install ( TARGETS ${INTF_NAME} ARCHIVE DESTINATION ${AVB_INSTALL_LIB_DIR} ) - install ( DIRECTORY "${AVB_SRC_DIR}/${INTF_NAME}/" DESTINATION ${AVB_INSTALL_BIN_DIR} FILES_MATCHING PATTERN "*.ini" ) -endmacro() -add_intf_mod ( "intf_ctrl" ) -add_intf_mod ( "intf_echo" ) -add_intf_mod ( "intf_logger" ) -add_intf_mod ( "intf_null" ) -add_intf_mod ( "intf_tonegen" ) -add_intf_mod ( "intf_viewer" ) - -# Interface modules (platform) -macro (add_intf_mod_platform INTF_NAME) - SET ( SRC_FILES "" ) - SET ( INTF_INCLUDE_DIR "") - SET ( INTF_LIBRARY_DIR "") - SET ( INTF_LIBRARY "") - add_subdirectory ( ${AVB_OSAL_DIR}/${INTF_NAME} ) - include_directories ( ${INTF_INCLUDE_DIR} ) - add_library ( ${INTF_NAME} ${SRC_FILES} ) - install ( TARGETS ${INTF_NAME} ARCHIVE DESTINATION ${AVB_INSTALL_LIB_DIR} ) - install ( DIRECTORY "${AVB_OSAL_DIR}/${INTF_NAME}/" DESTINATION ${AVB_INSTALL_BIN_DIR} FILES_MATCHING PATTERN "*.ini" ) -endmacro() - -add_intf_mod_platform ( "intf_alsa" ) -if (AVB_FEATURE_GSTREAMER) - add_intf_mod_platform ( "intf_mpeg2ts_gst" ) - add_intf_mod_platform ( "intf_mjpeg_gst" ) - add_intf_mod_platform ( "intf_h264_gst" ) +if (AVB_FEATURE_AVDECC) + # avb_avdecc (openavb_avdecc) + add_subdirectory ( ${AVB_OSAL_DIR}/avb_avdecc ) +else () + # avb_host (openavb_host and openavb_harness) + add_subdirectory ( ${AVB_OSAL_DIR}/avb_host ) +endif () + +if (NOT AVB_FEATURE_AVDECC) + # mapping modules + macro (add_map_mod MAP_NAME) + SET ( SRC_FILES "" ) + add_subdirectory ( ${MAP_NAME} ) + add_library ( ${MAP_NAME} ${SRC_FILES} ) + install ( TARGETS ${MAP_NAME} ARCHIVE DESTINATION ${AVB_INSTALL_LIB_DIR} ) + endmacro() + add_map_mod ( "map_ctrl" ) + add_map_mod ( "map_mjpeg" ) + add_map_mod ( "map_mpeg2ts" ) + add_map_mod ( "map_null" ) + add_map_mod ( "map_pipe" ) + add_map_mod ( "map_aaf_audio" ) + add_map_mod ( "map_uncmp_audio" ) + add_map_mod ( "map_h264" ) + + # Interface modules (common) + macro (add_intf_mod INTF_NAME) + SET ( SRC_FILES "" ) + add_subdirectory ( ${INTF_NAME} ) + add_library ( ${INTF_NAME} ${SRC_FILES} ) + install ( TARGETS ${INTF_NAME} ARCHIVE DESTINATION ${AVB_INSTALL_LIB_DIR} ) + install ( DIRECTORY "${AVB_SRC_DIR}/${INTF_NAME}/" DESTINATION ${AVB_INSTALL_BIN_DIR} FILES_MATCHING PATTERN "*.ini" ) + endmacro() + add_intf_mod ( "intf_ctrl" ) + add_intf_mod ( "intf_echo" ) + add_intf_mod ( "intf_logger" ) + add_intf_mod ( "intf_null" ) + add_intf_mod ( "intf_tonegen" ) + add_intf_mod ( "intf_viewer" ) + + # Interface modules (platform) + macro (add_intf_mod_platform INTF_NAME) + SET ( SRC_FILES "" ) + SET ( INTF_INCLUDE_DIR "") + SET ( INTF_LIBRARY_DIR "") + SET ( INTF_LIBRARY "") + add_subdirectory ( ${AVB_OSAL_DIR}/${INTF_NAME} ) + include_directories ( ${INTF_INCLUDE_DIR} ) + add_library ( ${INTF_NAME} ${SRC_FILES} ) + install ( TARGETS ${INTF_NAME} ARCHIVE DESTINATION ${AVB_INSTALL_LIB_DIR} ) + install ( DIRECTORY "${AVB_OSAL_DIR}/${INTF_NAME}/" DESTINATION ${AVB_INSTALL_BIN_DIR} FILES_MATCHING PATTERN "*.ini" ) + endmacro() + + add_intf_mod_platform ( "intf_alsa" ) + if (AVB_FEATURE_GSTREAMER) + add_intf_mod_platform ( "intf_mpeg2ts_gst" ) + add_intf_mod_platform ( "intf_mjpeg_gst" ) + add_intf_mod_platform ( "intf_h264_gst" ) + endif () + add_intf_mod_platform ( "intf_mpeg2ts_file" ) + add_intf_mod_platform ( "intf_wav_file" ) endif () -add_intf_mod_platform ( "intf_mpeg2ts_file" ) -add_intf_mod_platform ( "intf_wav_file" ) # API documentation add_subdirectory ( documents ) -# SDKS -add_subdirectory ( sdk ) +if (NOT AVB_FEATURE_AVDECC) + # SDKS + add_subdirectory ( sdk ) -# rawsock_rx -add_executable (rawsock_rx ${AVB_OSAL_DIR}/rawsock/rawsock_rx.c) -target_link_libraries (rawsock_rx avbTl ${GLIB_PKG_LIBRARIES} pthread rt pci ${PLATFORM_LINK_LIBRARIES} ) -install ( TARGETS rawsock_rx RUNTIME DESTINATION ${AVB_INSTALL_BIN_DIR} ) + # rawsock_rx + add_executable (rawsock_rx ${AVB_OSAL_DIR}/rawsock/rawsock_rx.c) + target_link_libraries (rawsock_rx avbTl ${GLIB_PKG_LIBRARIES} pthread rt ${PLATFORM_LINK_LIBRARIES} ) + install ( TARGETS rawsock_rx RUNTIME DESTINATION ${AVB_INSTALL_BIN_DIR} ) -# rawsock_tx -add_executable (rawsock_tx ${AVB_OSAL_DIR}/rawsock/rawsock_tx.c) -target_link_libraries (rawsock_tx avbTl ${GLIB_PKG_LIBRARIES} pthread rt pci ${PLATFORM_LINK_LIBRARIES} ) -install ( TARGETS rawsock_tx RUNTIME DESTINATION ${AVB_INSTALL_BIN_DIR} ) + # rawsock_tx + add_executable (rawsock_tx ${AVB_OSAL_DIR}/rawsock/rawsock_tx.c) + target_link_libraries (rawsock_tx avbTl ${GLIB_PKG_LIBRARIES} pthread rt ${PLATFORM_LINK_LIBRARIES} ) + install ( TARGETS rawsock_tx RUNTIME DESTINATION ${AVB_INSTALL_BIN_DIR} ) +endif () # Copy additional installation files if (AVB_FEATURE_ENDPOINT) - install ( FILES ${AVB_SRC_DIR}/endpoint/endpoint.ini DESTINATION ${AVB_INSTALL_BIN_DIR} ) - install ( PROGRAMS ${AVB_SRC_DIR}/endpoint/shutdown_openavb_endpoint.sh DESTINATION ${AVB_INSTALL_BIN_DIR} ) + install ( FILES ${AVB_SRC_DIR}/endpoint/endpoint.ini DESTINATION ${AVB_INSTALL_BIN_DIR} ) + install ( PROGRAMS ${AVB_SRC_DIR}/endpoint/shutdown_openavb_endpoint.sh DESTINATION ${AVB_INSTALL_BIN_DIR} ) +endif () +if (AVB_FEATURE_AVDECC) + install ( FILES ${AVB_SRC_DIR}/avdecc/avdecc.ini DESTINATION ${AVB_INSTALL_BIN_DIR} ) + install ( PROGRAMS ${AVB_SRC_DIR}/avdecc/shutdown_openavb_avdecc.sh DESTINATION ${AVB_INSTALL_BIN_DIR} ) endif () |