This commit is contained in:
2021-10-14 13:47:35 +02:00
commit 6625a8dfaa
4026 changed files with 844291 additions and 0 deletions
@@ -0,0 +1,33 @@
# ---------------------------------
# Finds OpenViBE
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE "Dynamically link OpenViBE" ON)
IF(DYNAMIC_LINK_OPENVIBE)
ADD_DEFINITIONS(-DOV_Shared)
ENDIF(DYNAMIC_LINK_OPENVIBE)
IF(DYNAMIC_LINK_OPENVIBE)
SET(OPENVIBE_LINKING "")
ELSE(DYNAMIC_LINK_OPENVIBE)
SET(OPENVIBE_LINKING "-static")
ENDIF(DYNAMIC_LINK_OPENVIBE)
set(SRC_DIR ${OV_BASE_DIR}/openvibe)
SET(PATH_OPENVIBE "PATH_OPENVIBE-NOTFOUND")
FIND_PATH(PATH_OPENVIBE include/openvibe/ov_all.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE)
debug_message( " Found OpenViBE... [${PATH_OPENVIBE}]")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE}/include/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe${OPENVIBE_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_OpenViBE)
ELSE(PATH_OPENVIBE)
MESSAGE(WARNING " FAILED to find OpenViBE...")
ENDIF(PATH_OPENVIBE)
@@ -0,0 +1,21 @@
# ---------------------------------
# Finds OpenViBE common include files
# Adds dependency to target
# Adds include path
# ---------------------------------
SET(PATH_OPENVIBE_COMMON "PATH_OPENVIBE_COMMON-NOTFOUND")
FIND_PATH(PATH_OPENVIBE_COMMON ov_common_defines.h PATHS ${OV_BASE_DIR}/common/include NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_COMMON)
debug_message( " Found openvibe-common...")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_COMMON})
ADD_DEPENDENCIES(${PROJECT_NAME} openvibe-common)
ADD_DEFINITIONS(-DTARGET_HAS_OpenViBE_Common)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyOpenViBEPluginsGlobalDefines)
ELSE(PATH_OPENVIBE_COMMON)
MESSAGE(WARNING " FAILED to find openvibe-common...")
ENDIF(PATH_OPENVIBE_COMMON)
@@ -0,0 +1,14 @@
# ---------------------------------
# Finds OpenViBE contributions
# Only serves to set up a define for the preprocessor
# ---------------------------------
FIND_PATH(PATH_OPENVIBE_CONTRIBUTIONS common/contribAcquisitionServer.cmake PATHS ${OV_BASE_DIR}/contrib NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_CONTRIBUTIONS)
debug_message( " Found openvibe-contributions...")
ADD_DEFINITIONS(-DTARGET_HAS_OpenViBEContributions)
ELSE(PATH_OPENVIBE_CONTRIBUTIONS)
MESSAGE(WARNING " FAILED to find openvibe-contributions...")
ENDIF(PATH_OPENVIBE_CONTRIBUTIONS)
@@ -0,0 +1,30 @@
# ---------------------------------
# Finds module CSV
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_CSV "Dynamically link OpenViBE module CSV" ON)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_CSV)
SET(OPENVIBE_MODULE_CSV_LINKING "")
ADD_DEFINITIONS(-DCSV_Shared)
ELSE()
SET(OPENVIBE_MODULE_CSV_LINKING "-static")
ADD_DEFINITIONS(-DCSV_Static)
ENDIF()
set(PATH_OPENVIBE_MODULES_CSV "PATH_OPENVIBE_MODULES_CSV-NOTFOUND")
set(SRC_DIR ${OV_BASE_DIR}/modules/csv/include)
FIND_PATH(PATH_OPENVIBE_MODULES_CSV csv/defines.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_CSV)
debug_message( " Found OpenViBE module CSV...")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_CSV}/)
debug_message( " Link openvibe-module-csv${OPENVIBE_MODULE_CSV_LINKING}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-csv${OPENVIBE_MODULE_CSV_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_CSV)
ELSE()
MESSAGE(WARNING " FAILED to find OpenViBE module CSV...")
ENDIF()
@@ -0,0 +1,29 @@
# ---------------------------------
# Finds module Communication
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_COMMUNICATION "Dynamically link OpenViBE module Communication" ON)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_COMMUNICATION)
SET(OPENVIBE_MODULE_COMMUNICATION_LINKING "")
ADD_DEFINITIONS(-DCommunication_Shared)
ELSE()
SET(OPENVIBE_MODULE_COMMUNICATION_LINKING "-static")
ADD_DEFINITIONS(-DCommunication_Static)
ENDIF()
set(PATH_OPENVIBE_MODULES_COMMUNICATION "PATH_OPENVIBE_MODULES_COMMUNICATION-NOTFOUND")
set(SRC_DIR ${OV_BASE_DIR}/modules/communication/include)
FIND_PATH(PATH_OPENVIBE_MODULES_COMMUNICATION communication/defines.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_COMMUNICATION)
MESSAGE(STATUS " Found OpenViBE module Communication... ${PATH_OPENVIBE_MODULE_COMMUNICATION}/openvibe-module-communication${OPENVIBE_MODULE_COMMUNICATION_LINKING}")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_COMMUNICATION}/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-communication${OPENVIBE_MODULE_COMMUNICATION_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_COMMUNICATION)
ELSE()
MESSAGE(WARNING " FAILED to find OpenViBE module Communication...")
ENDIF()
@@ -0,0 +1,29 @@
# ---------------------------------
# Finds module Date
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_DATE "Dynamically link OpenViBE module Date" OFF)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_DATE)
SET(OPENVIBE_MODULE_DATE_LINKING "")
ADD_DEFINITIONS(-DDATE_Shared)
ELSE()
SET(OPENVIBE_MODULE_DATE_LINKING "-static")
ADD_DEFINITIONS(-DDATE_Static)
ENDIF()
set(PATH_OPENVIBE_MODULES_DATE "PATH_OPENVIBE_MODULES_DATE-NOTFOUND")
set(SRC_DIR ${OV_BASE_DIR}/modules/date/include)
FIND_PATH(PATH_OPENVIBE_MODULES_DATE date/defines.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_DATE)
debug_message( " Found OpenViBE module Date...")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_DATE}/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-date${OPENVIBE_MODULE_DATE_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_DATE)
ELSE()
MESSAGE(WARNING " FAILED to find OpenViBE module Date...")
ENDIF()
@@ -0,0 +1,29 @@
# ---------------------------------
# Finds module EBML
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_EBML "Dynamically link OpenViBE module EBML" ON)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_EBML)
SET(OPENVIBE_MODULE_EBML_LINKING "")
ADD_DEFINITIONS(-DEBML_Shared)
ELSE()
SET(OPENVIBE_MODULE_EBML_LINKING "-static")
ADD_DEFINITIONS(-DEBML_Static)
ENDIF()
set(PATH_OPENVIBE_MODULES_EBML "PATH_OPENVIBE_MODULES_EBML-NOTFOUND")
set(SRC_DIR ${OV_BASE_DIR}/modules/ebml/include)
FIND_PATH(PATH_OPENVIBE_MODULES_EBML ebml/defines.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_EBML)
debug_message( " Found OpenViBE module EBML...")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_EBML}/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-ebml${OPENVIBE_MODULE_EBML_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_EBML)
ELSE(PATH_OPENVIBE_MODULES_EBML)
MESSAGE(WARNING " FAILED to find OpenViBE module EBML...")
ENDIF(PATH_OPENVIBE_MODULES_EBML)
@@ -0,0 +1,29 @@
# ---------------------------------
# Finds module FS
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_FS "Dynamically link OpenViBE module FS" ON)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_FS)
SET(OPENVIBE_MODULE_FS_LINKING "")
ADD_DEFINITIONS(-DFS_Shared)
ELSE()
SET(OPENVIBE_MODULE_FS_LINKING "-static")
ADD_DEFINITIONS(-DFS_Static)
ENDIF()
set(PATH_OPENVIBE_MODULES_FS "PATH_OPENVIBE_MODULES_FS-NOTFOUND")
set(SRC_DIR ${OV_BASE_DIR}/modules/fs/include)
FIND_PATH(PATH_OPENVIBE_MODULES_FS fs/defines.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_FS)
debug_message( " Found OpenViBE module FS... openvibe-module-fs${OPENVIBE_MODULE_FS_LINKING}")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_FS}/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-fs${OPENVIBE_MODULE_FS_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_FS)
ELSE(PATH_OPENVIBE_MODULES_FS)
MESSAGE(WARNING " FAILED to find OpenViBE module FS...")
ENDIF(PATH_OPENVIBE_MODULES_FS)
@@ -0,0 +1,48 @@
# ---------------------------------
# Finds module Socket
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_SOCKET "Dynamically link OpenViBE module Socket" ON)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_SOCKET)
SET(OPENVIBE_MODULE_SOCKET_LINKING "")
ADD_DEFINITIONS(-DSocket_Shared)
ELSE()
SET(OPENVIBE_MODULE_SOCKET_LINKING "-static")
ADD_DEFINITIONS(-DSocket_Static)
ENDIF()
set(PATH_OPENVIBE_MODULES_SOCKET "PATH_OPENVIBE_MODULES_SOCKET-NOTFOUND")
set(SRC_DIR ${OV_BASE_DIR}/modules/socket/include)
FIND_PATH(PATH_OPENVIBE_MODULES_SOCKET socket/defines.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_SOCKET)
debug_message( " Found OpenViBE module Socket... ${PATH_OPENVIBE_MODULE_SOCKET}/openvibe-module-socket${OPENVIBE_MODULE_SOCKET_LINKING}")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_SOCKET}/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-socket${OPENVIBE_MODULE_SOCKET_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_Socket)
# if we link with the module socket in Static, we must link the project with the dependency on win32
IF(WIN32 AND NOT DYNAMIC_LINK_OPENVIBE_MODULE_SOCKET)
INCLUDE("FindThirdPartyWinsock2")
# FIND_LIBRARY(LIB_STANDARD_MODULE_WINSOCK ws2_32)
# IF(LIB_STANDARD_MODULE_WINSOCK)
# debug_message( " Found ws2_32...")
# IF(TARGET ${PROJECT_NAME})
# TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_WINSOCK})
# ENDIF()
# IF(TARGET ${PROJECT_NAME}-static)
# TARGET_LINK_LIBRARIES(${PROJECT_NAME}-static ${LIB_STANDARD_MODULE_WINSOCK})
# ENDIF()
# ELSE(LIB_STANDARD_MODULE_WINSOCK)
# debug_message( " FAILED to find ws2_32...")
# ENDIF(LIB_STANDARD_MODULE_WINSOCK)
ENDIF(WIN32 AND NOT DYNAMIC_LINK_OPENVIBE_MODULE_SOCKET)
ELSE(PATH_OPENVIBE_MODULES_SOCKET)
MESSAGE(WARNING " FAILED to find OpenViBE module Socket...")
ENDIF(PATH_OPENVIBE_MODULES_SOCKET)
@@ -0,0 +1,30 @@
# ---------------------------------
# Finds module Stream
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_STREAM "Dynamically link OpenViBE module Stream" ON)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_STREAM)
SET(OPENVIBE_MODULE_STREAM_LINKING "")
ELSE(DYNAMIC_LINK_OPENVIBE_MODULE_STREAM)
SET(OPENVIBE_MODULE_STREAM_LINKING "-static")
ENDIF(DYNAMIC_LINK_OPENVIBE_MODULE_STREAM)
IF(OV_BRANCH_MODULES_STREAM)
set(SRC_DIR ${OV_BASE_DIR}/openvibe-modules/stream/${OV_BRANCH_MODULES_STREAM})
ELSE(OV_BRANCH_MODULES_STREAM)
set(SRC_DIR ${OV_BASE_DIR}/openvibe-modules/stream/${OV_TRUNK})
ENDIF(OV_BRANCH_MODULES_STREAM)
FIND_PATH(PATH_OPENVIBE_MODULES_STREAM src/stream/defines.h PATHS ${OV_BASE_DIR}/openvibe-modules/stream)
IF(PATH_OPENVIBE_MODULES_STREAM)
debug_message( " Found OpenViBE module Stream...")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_STREAM}/include)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-stream${OPENVIBE_MODULE_STREAM_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_Stream)
ELSE(PATH_OPENVIBE_MODULES_STREAM)
MESSAGE(WARNING " FAILED to find OpenViBE module Stream...")
ENDIF(PATH_OPENVIBE_MODULES_STREAM)
@@ -0,0 +1,29 @@
# ---------------------------------
# Finds module System
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_SYSTEM "Dynamically link OpenViBE module System" ON)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_SYSTEM)
SET(OPENVIBE_MODULE_SYSTEM_LINKING "")
ADD_DEFINITIONS(-DSystem_Shared)
ELSE()
SET(OPENVIBE_MODULE_SYSTEM_LINKING "-static")
ADD_DEFINITIONS(-DSystem_Static)
ENDIF()
set(PATH_OPENVIBE_MODULES_SYSTEM "PATH_OPENVIBE_MODULES_SYSTEM-NOTFOUND")
set(SRC_DIR ${OV_BASE_DIR}/modules/system/include)
FIND_PATH(PATH_OPENVIBE_MODULES_SYSTEM system/defines.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_SYSTEM)
debug_message( " Found OpenViBE module System...")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_SYSTEM}/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-system${OPENVIBE_MODULE_SYSTEM_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_System)
ELSE(PATH_OPENVIBE_MODULES_SYSTEM)
MESSAGE(WARNING " FAILED to find OpenViBE module System...")
ENDIF(PATH_OPENVIBE_MODULES_SYSTEM)
@@ -0,0 +1,30 @@
# ---------------------------------
# Finds module XML
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_XML "Dynamically link OpenViBE module XML" ON)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_XML)
SET(OPENVIBE_MODULE_XML_LINKING "")
ADD_DEFINITIONS(-DXML_Shared)
ELSE(DYNAMIC_LINK_OPENVIBE_MODULE_XML)
SET(OPENVIBE_MODULE_XML_LINKING "-static")
ADD_DEFINITIONS(-DXML_Static)
SET(Boost_USE_STATIC_LIBS ON)
ENDIF(DYNAMIC_LINK_OPENVIBE_MODULE_XML)
set(PATH_OPENVIBE_MODULES_XML "PATH_OPENVIBE_MODULES_XML-NOTFOUND")
set(SRC_DIR ${OV_BASE_DIR}/modules/xml/include)
FIND_PATH(PATH_OPENVIBE_MODULES_XML xml/defines.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_XML)
debug_message( " Found OpenViBE module XML...")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_XML}/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-xml${OPENVIBE_MODULE_XML_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_XML)
ELSE(PATH_OPENVIBE_MODULES_XML)
MESSAGE(WARNING " FAILED to find OpenViBE module XML...")
ENDIF(PATH_OPENVIBE_MODULES_XML)
@@ -0,0 +1,18 @@
# ---------------------------------
# Finds OpenViBEPluginsGlobalDefines
# Adds library to target
# Adds include path
#
# @deprecated Running FindOpenVibeCommon.cmake is sufficient
#
# ---------------------------------
SET(PATH_OpenViBEPluginsGlobalDefines "PATH_OpenViBEPluginsGlobalDefines-NOTFOUND")
FIND_PATH(PATH_OpenViBEPluginsGlobalDefines ovp_global_defines.h PATHS ${OV_BASE_DIR}/common/include NO_DEFAULT_PATH)
IF(PATH_OpenViBEPluginsGlobalDefines)
debug_message( " Found OpenViBE plugins global defines...")
INCLUDE_DIRECTORIES(${PATH_OpenViBEPluginsGlobalDefines})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyOpenViBEPluginsGlobalDefines)
ELSE(PATH_OpenViBEPluginsGlobalDefines)
MESSAGE(WARNING " FAILED to find OpenViBE plugins global defines")
ENDIF(PATH_OpenViBEPluginsGlobalDefines)
@@ -0,0 +1,38 @@
# ---------------------------------
# Finds openvibe-toolkit
# Adds library to target
# Adds include path
# ---------------------------------
OPTION(LINK_OPENVIBE_TOOLKIT "By default, link openvibe-toolkit, otherwise only use the includes" ON)
OPTION(DYNAMIC_LINK_OPENVIBE_TOOLKIT "Dynamically link openvibe-toolkit" ON)
IF(DYNAMIC_LINK_OPENVIBE_TOOLKIT)
SET(OPENVIBE_TOOLKIT_LINKING "")
ADD_DEFINITIONS(-DOVTK_Shared)
ELSE()
SET(OPENVIBE_TOOLKIT_LINKING "-static")
ADD_DEFINITIONS(-DOVTK_Static)
ENDIF()
SET(SRC_DIR ${OV_BASE_DIR}/toolkit/include)
FIND_PATH(PATH_OPENVIBE_TOOLKIT toolkit/ovtk_all.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_TOOLKIT)
debug_message( " Found openvibe-toolkit... ${PATH_OPENVIBE_TOOLKIT} ${PATH_OPENVIBE_TOOLKIT_BIN}")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_TOOLKIT})
# No find path for this directory as content is not generated yet
INCLUDE_DIRECTORIES(${OV_BASE_BIN_DIR}/toolkit/include)
IF(LINK_OPENVIBE_TOOLKIT)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-toolkit${OPENVIBE_TOOLKIT_LINKING})
ENDIF()
ADD_DEFINITIONS(-DTARGET_HAS_OpenViBEToolkit)
ELSE()
MESSAGE(FATAL " FAILED to find openvibe-toolkit...")
ENDIF()
INCLUDE("FindOpenViBEModuleXML")
@@ -0,0 +1,10 @@
# ---------------------------------
# Finds DSP filters sources
# Sets dsp_filters_source_files
# Adds appropriate include dir
# ---------------------------------
FILE(GLOB_RECURSE dsp_filters_source_files ${OV_SOURCE_DEPENDENCIES_PATH}/dsp-filters/*.cpp ${OV_SOURCE_DEPENDENCIES_PATH}/dsp-filters/*.c ${OV_SOURCE_DEPENDENCIES_PATH}/dsp-filters/*.h)
ADD_DEFINITIONS(-DTARGET_HAS_DSPFilters)
INCLUDE_DIRECTORIES("${OV_SOURCE_DEPENDENCIES_PATH}")
SET(SRC_FILES "${SRC_FILES};${dsp_filters_source_files}")
@@ -0,0 +1,10 @@
# ---------------------------------
# Finds Lepton sources
# Sets lepton_source_files
# Adds appropriate include dir
# ---------------------------------
FILE(GLOB_RECURSE lepton_source_files ${OV_SOURCE_DEPENDENCIES_PATH}/lepton/*.cpp ${OV_SOURCE_DEPENDENCIES_PATH}/lepton/*.h)
ADD_DEFINITIONS(-DTARGET_HAS_LEPTON)
INCLUDE_DIRECTORIES("${OV_SOURCE_DEPENDENCIES_PATH}")
SET(SRC_FILES "${SRC_FILES};${lepton_source_files}")
@@ -0,0 +1,10 @@
# ---------------------------------
# Find r8brain sources
# Sets r9brain_source_files
# Adds appropriate include dir
# ---------------------------------
FILE(GLOB_RECURSE r8brain_source_files ${OV_SOURCE_DEPENDENCIES_PATH}/r8brain/*.cpp ${OV_SOURCE_DEPENDENCIES_PATH}/r8brain/*.h)
ADD_DEFINITIONS(-DTARGET_HAS_R8BRAIN)
INCLUDE_DIRECTORIES("${OV_SOURCE_DEPENDENCIES_PATH}")
SET(SRC_FILES "${SRC_FILES};${r8brain_source_files}")
@@ -0,0 +1,10 @@
# ---------------------------------
# Finds wavelib sources
# Sets wavelib_source_files
# Adds appropriate include dir
# ---------------------------------
FILE(GLOB_RECURSE wavelib_source_files ${OV_SOURCE_DEPENDENCIES_PATH}/wavelib/src/*.cpp ${OV_SOURCE_DEPENDENCIES_PATH}/wavelib/src/*.c ${OV_SOURCE_DEPENDENCIES_PATH}/wavelib/src/*.h ${OV_SOURCE_DEPENDENCIES_PATH}/wavelib/header/*.h)
ADD_DEFINITIONS(-DTARGET_HAS_WAVELIB)
INCLUDE_DIRECTORIES("${OV_SOURCE_DEPENDENCIES_PATH}")
SET(SRC_FILES "${SRC_FILES};${wavelib_source_files}")
@@ -0,0 +1,10 @@
# ---------------------------------
# Configure RC file
# Sets SRC_FILES to add the path to the newly created rc file
# Adds appropriate include dir
# ---------------------------------
IF(WIN32)
OV_CONFIGURE_RC(NAME ${PROJECT_NAME})
SET(SRC_FILES "${SRC_FILES};${CMAKE_BINARY_DIR}/resource-files/${PROJECT_NAME}.rc")
ENDIF()
@@ -0,0 +1,18 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
SET(PATH_BOOST "PATH_BOOST-NOTFOUND")
FIND_PATH(PATH_BOOST "include/boost/config/auto_link.hpp" PATHS ${OV_CUSTOM_DEPENDENCIES_PATH}/boost ${OV_CUSTOM_DEPENDENCIES_PATH} NO_DEFAULT_PATH)
FIND_PATH(PATH_BOOST "include/boost/config/auto_link.hpp" PATHS ${OV_CUSTOM_DEPENDENCIES_PATH}/boost)
IF(PATH_BOOST)
debug_message( " Found boost includes...")
INCLUDE_DIRECTORIES(${PATH_BOOST}/include)
ADD_DEFINITIONS(-DTARGET_HAS_Boost)
ELSE(PATH_BOOST)
MESSAGE(WARNING " FAILED to find boost includes...")
ENDIF(PATH_BOOST)
@@ -0,0 +1,31 @@
# ---------------------------------
# Finds third party boost chrono
# Adds a def that its present
# ---------------------------------
FIND_PATH(PATH_BOOST_CHRONO "include/boost/chrono.hpp" PATHS ${OV_CUSTOM_DEPENDENCIES_PATH}/boost ${OV_CUSTOM_DEPENDENCIES_PATH} NO_DEFAULT_PATH)
FIND_PATH(PATH_BOOST_CHRONO "include/boost/chrono.hpp" PATHS ${OV_CUSTOM_DEPENDENCIES_PATH}/boost)
IF(PATH_BOOST_CHRONO)
debug_message( " Found boost chrono includes...")
ADD_DEFINITIONS(-DTARGET_HAS_Boost_Chrono)
ELSE(PATH_BOOST_CHRONO)
MESSAGE(WARNING " FAILED to find boost chrono includes...")
ENDIF(PATH_BOOST_CHRONO)
IF(UNIX)
FIND_LIBRARY(LIB_Boost_Chrono NAMES "boost_chrono-mt" "boost_chrono" PATHS ${OV_CUSTOM_DEPENDENCIES_PATH}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_Chrono NAMES "boost_chrono-mt" "boost_chrono" PATHS ${OV_CUSTOM_DEPENDENCIES_PATH}/lib)
IF(LIB_Boost_Chrono)
debug_message( " [ OK ] lib ${LIB_Boost_Chrono}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Chrono} )
ELSE(LIB_Boost_Chrono)
MESSAGE(WARNING " [FAILED] lib boost_chrono-mt")
MESSAGE(WARNING " [FAILED] lib boost_chrono")
ENDIF(LIB_Boost_Chrono)
ENDIF(UNIX)
IF(WIN32)
OV_LINK_BOOST_LIB("chrono" ${OV_WIN32_BOOST_VERSION})
ENDIF(WIN32)
@@ -0,0 +1,32 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
IF(APPLE)
find_package(Boost 1.60.0 COMPONENTS filesystem system)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})
endif()
ELSEIF(UNIX)
find_package(Boost 1.54.0 COMPONENTS filesystem system)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})
endif()
# For Fedora
FIND_LIBRARY(LIB_STANDARD_MODULE_PTHREAD pthread)
IF(LIB_STANDARD_MODULE_PTHREAD)
debug_message( " Found pthread...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_PTHREAD})
ELSE(LIB_STANDARD_MODULE_PTHREAD)
MESSAGE(WARNING " FAILED to find pthread...")
ENDIF(LIB_STANDARD_MODULE_PTHREAD)
ENDIF()
IF(WIN32)
OV_LINK_BOOST_LIB("filesystem" ${OV_WIN32_BOOST_VERSION} )
OV_LINK_BOOST_LIB("system" ${OV_WIN32_BOOST_VERSION} ) # filesystem depends on system
ENDIF(WIN32)
@@ -0,0 +1,54 @@
# ---------------------------------
# Finds Eigen headers
#
# Adds include path
# ---------------------------------
IF(WIN32)
SET(PATH_EIGEN "PATH_EIGEN-NOTFOUND")
FIND_PATH(PATH_EIGEN Eigen/Eigen PATHS ${OV_CUSTOM_DEPENDENCIES_PATH}/eigen NO_DEFAULT_PATH)
IF(PATH_EIGEN)
SET(EIGEN_FOUND TRUE)
SET(EIGEN_INCLUDE_DIRS ${PATH_EIGEN})
SET(EIGEN_CFLAGS "")
#SET(EIGEN_LIBRARIES_RELEASE EIGEN)
#SET(EIGEN_LIBRARIES_DEBUG EIGENd)
#SET(EIGEN_LIBRARY_DIRS ${PATH_EIGEN}/lib )
ENDIF(PATH_EIGEN)
ENDIF(WIN32)
IF(UNIX)
# @FIXME remove that when an Ubuntu package will be available
# Find in priority local library for eigen even if linux package has been installed
# reason: package on distri Ubuntu 16.04 is still bugged (eigen 3.2.92)
INCLUDE("FindPkgConfig")
UNSET(PATH_EIGEN_LOCAL CACHE)
FIND_PATH(PATH_EIGEN_LOCAL eigen3 PATHS "/usr/local/include" NO_DEFAULT_PATH)
SET(EIGEN_FOUND FALSE)
IF (PATH_EIGEN_LOCAL)
SET(EIGEN_INCLUDE_DIRS "${PATH_EIGEN_LOCAL}/eigen3")
SET(EIGEN_CFLAGS "-I${EIGEN_INCLUDE_DIRS}")
SET(EIGEN_FOUND TRUE)
ELSE()
pkg_check_modules(EIGEN eigen3)
ENDIF()
# @FIXME uncomment that when an Ubuntu package will be available
#SET(EIGEN_FOUND FALSE)
#INCLUDE("FindPkgConfig")
#pkg_check_modules(EIGEN eigen3)
ENDIF(UNIX)
IF(EIGEN_FOUND)
debug_message( "Found eigen3... [${EIGEN_INCLUDE_DIRS}]")
INCLUDE_DIRECTORIES("${EIGEN_INCLUDE_DIRS}")
ADD_DEFINITIONS(${EIGEN_CFLAGS})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEIGEN)
ELSE(EIGEN_FOUND)
MESSAGE(WARNING " FAILED to find eigen3...")
ENDIF(EIGEN_FOUND)
@@ -0,0 +1,77 @@
# ---------------------------------
# Finds EXPAT toolkit
#
# Sets EXPAT_FOUND
# Sets EXPAT_LIBRARIES
# Sets EXPAT_LIBRARY_DIRS
# Sets EXPAT_LDFLAGS
# Sets EXPAT_LDFLAGS_OTHERS
# Sets EXPAT_INCLUDE_DIRS
# Sets EXPAT_CFLAGS
# Sets EXPAT_CFLAGS_OTHERS
# ---------------------------------
IF(UNIX)
SET(EXPAT_expat_INCLUDE_PATH "EXPAT_expat_INCLUDE_PATH-NOTFOUND")
FIND_PATH(EXPAT_expat_INCLUDE_PATH "expat.h"
PATHS "${OV_CUSTOM_DEPENDENCIES_PATH}/include")
FIND_LIBRARY(EXPAT_expat_LIBRARY
NAMES expat
PATHS "${OV_CUSTOM_DEPENDENCIES_PATH}/lib")
ENDIF(UNIX)
IF(WIN32)
SET(EXPAT_expat_INCLUDE_PATH "EXPAT_expat_INCLUDE_PATH-NOTFOUND")
FIND_PATH(EXPAT_expat_INCLUDE_PATH "expat.h"
PATHS ${OV_CUSTOM_DEPENDENCIES_PATH} PATH_SUFFIXES expat/include expat/Source/lib)
FIND_LIBRARY(EXPAT_expat_LIBRARY
NAMES libexpat
PATHS ${OV_CUSTOM_DEPENDENCIES_PATH} PATH_SUFFIXES expat/Lib expat/Bin)
FIND_PATH(EXPAT_BIN . PATHS ${OV_CUSTOM_DEPENDENCIES_PATH} PATH_SUFFIXES expat/Bin NO_DEFAULT_PATH)
INSTALL(
DIRECTORY ${EXPAT_BIN}/
DESTINATION ${DIST_BINDIR}
FILES_MATCHING PATTERN "*.dll")
ENDIF(WIN32)
IF(EXPAT_expat_INCLUDE_PATH)
IF(EXPAT_expat_LIBRARY)
SET(EXPAT_FOUND TRUE)
SET(EXPAT_LIBRARIES ${EXPAT_expat_LIBRARY})
SET(EXPAT_LIBRARY_DIRS "")
SET(EXPAT_LDFLAGS "")
SET(EXPAT_LDFLAGS_OTHERS "")
SET(EXPAT_INCLUDE_DIRS ${EXPAT_expat_INCLUDE_PATH})
SET(EXPAT_CFLAGS "")
SET(EXPAT_CFLAGS_OTHERS "")
ENDIF(EXPAT_expat_LIBRARY)
ENDIF(EXPAT_expat_INCLUDE_PATH)
MARK_AS_ADVANCED(
EXPAT_expat_INCLUDE_PATH
EXPAT_expat_LIBRARY
EXPAT_FOUND
EXPAT_LIBRARIES
EXPAT_LIBRARY_DIRS
EXPAT_LDFLAGS
EXPAT_LDFLAGS_OTHERS
EXPAT_INCLUDE_DIRS
EXPAT_CFLAGS
EXPAT_CFLAGS_OTHERS
)
IF(EXPAT_FOUND)
debug_message( " Found expat...")
INCLUDE_DIRECTORIES(${EXPAT_INCLUDE_DIRS})
ADD_DEFINITIONS(${EXPAT_CFLAGS})
ADD_DEFINITIONS(${EXPAT_CFLAGS_OTHERS})
# LINK_DIRECTORIES(${EXPAT_LIBRARY_DIRS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${EXPAT_LIBRARIES})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyExpat)
ELSE(EXPAT_FOUND)
MESSAGE(WARNING " FAILED to find expat...")
ENDIF(EXPAT_FOUND)
@@ -0,0 +1,63 @@
# ---------------------------------
# Finds TVicPort toolkit
#
# Sets TVICPORT_FOUND
# Sets TVICPORT_LIBRARIES
# Sets TVICPORT_LIBRARY_DIRS
# Sets TVICPORT_LDFLAGS
# Sets TVICPORT_LDFLAGS_OTHERS
# Sets TVICPORT_INCLUDE_DIRS
# Sets TVICPORT_CFLAGS
# Sets TVICPORT_CFLAGS_OTHERS
# ---------------------------------
IF(WIN32)
SET(TVICPORT_tvicport_INCLUDE_PATH "TVICPORT_tvicport_INCLUDE_PATH-NOTFOUND")
FIND_PATH(TVICPORT_tvicport_INCLUDE_PATH "TVicPort.h"
PATHS "${OV_CUSTOM_DEPENDENCIES_PATH}/tvicport/include")
# FIND_LIBRARY(TVICPORT_tvicport_LIBRARY
# NAMES TVicPort
# PATHS "${OV_CUSTOM_DEPENDENCIES_PATH}/tvicport/libs")
ENDIF(WIN32)
IF(TVICPORT_tvicport_INCLUDE_PATH)
IF(TVICPORT_tvicport_LIBRARY)
SET(TVICPORT_FOUND TRUE)
#SET(TVICPORT_LIBRARIES ${TVICPORT_tvicport_LIBRARY})
#SET(TVICPORT_LIBRARY_DIRS "")
SET(TVICPORT_LDFLAGS "")
SET(TVICPORT_LDFLAGS_OTHERS "")
SET(TVICPORT_INCLUDE_DIRS ${TVICPORT_tvicport_INCLUDE_PATH})
SET(TVICPORT_CFLAGS "")
SET(TVICPORT_CFLAGS_OTHERS "")
ENDIF(TVICPORT_tvicport_LIBRARY)
ENDIF(TVICPORT_tvicport_INCLUDE_PATH)
MARK_AS_ADVANCED(
TVICPORT_tvicport_INCLUDE_PATH
TVICPORT_tvicport_LIBRARY
TVICPORT_FOUND
#TVICPORT_LIBRARIES
#TVICPORT_LIBRARY_DIRS
TVICPORT_LDFLAGS
TVICPORT_LDFLAGS_OTHERS
TVICPORT_INCLUDE_DIRS
TVICPORT_CFLAGS
TVICPORT_CFLAGS_OTHERS
)
IF(TVICPORT_FOUND)
debug_message( " Found TVicPort...")
INCLUDE_DIRECTORIES(${TVICPORT_INCLUDE_DIRS})
ADD_DEFINITIONS(${TVICPORT_CFLAGS})
ADD_DEFINITIONS(${TVICPORT_CFLAGS_OTHERS})
# LINK_DIRECTORIES(${EXPAT_LIBRARY_DIRS})
#ARGET_LINK_LIBRARIES(${PROJECT_NAME} ${TVICPORT_LIBRARIES})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyTVicPort)
ELSE(TVICPORT_FOUND)
MESSAGE(WARNING " FAILED to find TVicPort...")
ENDIF(TVICPORT_FOUND)
@@ -0,0 +1,30 @@
# ---------------------------------
# Finds Xerces dependency
# ---------------------------------
IF(WIN32)
FIND_PATH(XERCES_ROOT lib PATHS ${OV_CUSTOM_DEPENDENCIES_PATH} PATH_SUFFIXES xerces-c NO_DEFAULT_PATH)
SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "${XERCES_ROOT}/include")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${XERCES_ROOT}/lib")
INSTALL(
DIRECTORY ${XERCES_ROOT}/bin/
DESTINATION ${DIST_BINDIR}
FILES_MATCHING PATTERN "*.dll")
ENDIF()
FIND_PACKAGE(XercesC REQUIRED)
IF(XercesC_FOUND)
debug_message( " Found xerces...")
INCLUDE_DIRECTORIES(${XercesC_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${XercesC_LIBRARIES})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyXERCES)
ELSE()
MESSAGE(WARNING " FAILED to find xerces...")
ENDIF()
@@ -0,0 +1,19 @@
# ---------------------------------
# create CMake variables that holds
# - latest git commit hash
# - branch name
# ---------------------------------
# codename = the name of the current branch
EXECUTE_PROCESS(COMMAND git rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
OUTPUT_VARIABLE PROJECT_BRANCH)
# command output may contain carriage return
STRING(REGEX REPLACE "\n" "" PROJECT_BRANCH "${PROJECT_BRANCH}")
# commithash = short hash of latest revision
EXECUTE_PROCESS(COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
OUTPUT_VARIABLE PROJECT_COMMITHASH)
# command output may contain carriage return
STRING(REGEX REPLACE "\n" "" PROJECT_COMMITHASH "${PROJECT_COMMITHASH}")
@@ -0,0 +1,124 @@
# Adds the current project to the global properties
FUNCTION(OV_ADD_THIS_TO_PROJECT_LIST)
# MESSAGE(STATUS "ADDING: ${CMAKE_CURRENT_SOURCE_DIR}")
# Add the dir to be parsed for documentation later. We need to do this before adding subdir, in case the subdir is the actual docs dir
#GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS)
#SET(OV_TMP "${OV_TMP};${CMAKE_CURRENT_SOURCE_DIR}")
#SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS ${OV_TMP})
IF(NOT MULTI_BUILD)
IF(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc AND NOT(${SKIP_DOC_OPENVIBE}))
FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/doc/ DESTINATION ${DIST_DOCTMP}/openvibe FILES_MATCHING PATTERN "*.dox")
FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/doc/ DESTINATION ${DIST_DOCTMP}/openvibe PATTERN "*.dox" EXCLUDE)
ENDIF()
IF(IS_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/include) AND NOT(${SKIP_DOCUMENTATION}) AND NOT(${SKIP_DOC_OPENVIBE}))
FILE(APPEND "${DIST_DOCTMP}/openvibe/source-list.txt" "${CMAKE_CURRENT_SOURCE_DIR}/include\n")
ENDIF()
ENDIF()
ENDFUNCTION()
FUNCTION(OV_SET_CUSTOM_DOCUMENTATION doc_project_name doc_product_name)
MESSAGE(STATUS "CUSTOM DOCUMENTATION ENABLED FOR ${doc_project_name}")
SET(HAS_CUSTOM_DOCUMENTATION_${doc_project_name} "1" PARENT_SCOPE)
IF(${BUILD_DOCUMENTATION})
SET(CUSTOM_DOCUMENTATION_PRODUCT_NAME_${doc_project_name} "${doc_product_name}" PARENT_SCOPE)
# if we need also the sources (e.g. the API is documented with doxygen)
SET(ADDITIONAL_FOLDERS_STRING_LIST "")
FOREACH(additional_cpp_source ${ARGN})
SET(ADDITIONAL_FOLDERS_STRING_LIST "${ADDITIONAL_FOLDERS_STRING_LIST} ${CMAKE_CURRENT_SOURCE_DIR}/${doc_project_name}/${additional_cpp_source}")
ENDFOREACH()
SET(CUSTOM_DOCUMENTATION_CPP_SOURCES_${doc_project_name} "${ADDITIONAL_FOLDERS_STRING_LIST}" PARENT_SCOPE)
ENDIF()
ENDFUNCTION()
#
# Adds all directories as subdirectories to the CMake build, using the branch specified (if any) in the root CMakeList.txt or
# trunk otherwise.
#
# The branch variable name that is checked is made up from ${CURRENT_BRANCH_PREFIX}_${DIRNAMEUPPER}.
#
# The script also adds the directory to the global list of projects.
#
FUNCTION(OV_ADD_PROJECTS CURRENT_FOLDER_PREFIX)
FILE(GLOB FILENAMES "*")
FOREACH(FULLPATH ${FILENAMES})
IF(IS_DIRECTORY ${FULLPATH} AND EXISTS "${FULLPATH}/CMakeLists.txt")
GET_FILENAME_COMPONENT(DIRNAME ${FULLPATH} NAME)
STRING(TOUPPER ${DIRNAME} DIRNAMEUPPER)
SET(SKIP_THIS_FOLDER "SKIP_${CURRENT_FOLDER_PREFIX}_${DIRNAMEUPPER}")
SET(SKIP_THIS_CUSTOM_DOCUMENTATION "SKIP_DOC_${CURRENT_FOLDER_PREFIX}_${DIRNAMEUPPER}")
#MESSAGE(STATUS "Checking SKIP_${CURRENT_FOLDER_PREFIX}_${DIRNAMEUPPER} as branch var ${SKIP_THIS_FOLDER}")
IF(${SKIP_THIS_FOLDER})
MESSAGE(STATUS "Note: ${FULLPATH} has been skipped by setting SKIP_${CURRENT_FOLDER_PREFIX}_${DIRNAMEUPPER}")
ELSE()
# MESSAGE(STATUS "Inserting folder ${FULLPATH}")
# Add the dir to be parsed for documentation later. We need to do this before adding subdir, in case the subdir is the actual docs dir
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS)
SET(OV_TMP "${OV_TMP};${FULLPATH}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS ${OV_TMP})
SET(OV_CURRENT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/${DIRNAME}")
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS_BUILD_DIR)
SET(OV_TMP "${OV_TMP};${OV_CURRENT_BINARY_DIR}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS_BUILD_DIR ${OV_TMP})
SET(HAS_CUSTOM_DOCUMENTATION "HAS_CUSTOM_DOCUMENTATION_${DIRNAME}")
SET(CUSTOM_DOCUMENTATION_PRODUCT_NAME "CUSTOM_DOCUMENTATION_PRODUCT_NAME_${DIRNAME}")
SET(CUSTOM_DOCUMENTATION_CPP_SOURCES "${CUSTOM_DOCUMENTATION_CPP_SOURCES_${DIRNAME}}")
IF(NOT(${SKIP_DOCUMENTATION}) AND NOT(${SKIP_THIS_CUSTOM_DOCUMENTATION}) AND NOT MULTI_BUILD)
IF(NOT(${HAS_CUSTOM_DOCUMENTATION}))
IF(${PUBLISH_DOC_ASSETS})
IF(IS_DIRECTORY ${FULLPATH}/doc)
MESSAGE(STATUS "Documentation files found in ${FULLPATH}/doc")
INSTALL(DIRECTORY ${FULLPATH}/doc/ DESTINATION ${DIST_DOCTMP}/openvibe/box-algorithm-doc/dox-part/ FILES_MATCHING PATTERN "*.dox-part" PATTERN "doc/boxes" EXCLUDE)
INSTALL(DIRECTORY ${FULLPATH}/doc/ DESTINATION ${DIST_DOCTMP}/openvibe FILES_MATCHING PATTERN "*.dox" PATTERN "doc/boxes" EXCLUDE)
INSTALL(DIRECTORY ${FULLPATH}/doc/ DESTINATION ${DIST_DOCTMP}/openvibe
PATTERN "doc/boxes" EXCLUDE PATTERN "*.dox-part" EXCLUDE PATTERN "*.dox" EXCLUDE)
ENDIF()
IF(IS_DIRECTORY ${FULLPATH}/include)
FILE(APPEND "${DIST_DOCTMP}/openvibe/source-list.txt" "${FULLPATH}/include\n")
ENDIF()
ENDIF()
ELSE()
MESSAGE(STATUS "Project ${DIRNAME} has custom documentation")
# we copy the doc files into the temporary folder where everything is built thanks to a cmd script
IF(IS_DIRECTORY ${FULLPATH}/doc/)
FILE(COPY ${FULLPATH}/doc/ DESTINATION "${DIST_DOCTMP}/${DIRNAME}")
ENDIF()
SET(DOC_PROJECT_NAME ${DIRNAME})
SET(DOC_PROJECT_VERSION ${PROJECT_VERSION})
SET(DOC_PROJECT_PRODUCT_NAME "${${CUSTOM_DOCUMENTATION_PRODUCT_NAME}}")
SET(DOC_PROJECT_COMMITHASH ${PROJECT_COMMITHASH})
SET(DOC_PROJECT_BRANCH ${PROJECT_BRANCH})
SET(DOC_PROJECT_CPP_SOURCES "${CUSTOM_DOCUMENTATION_CPP_SOURCES}")
get_directory_property( DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS )
SET(DOC_DEFINES "")
foreach( d ${DirDefs} )
#message( STATUS "Found Define: " ${d} )
SET(DOC_DEFINES "${DOC_DEFINES} \\\\ \\n ${d}")
endforeach()
STRING(REPLACE "\"" "\\\"" DOC_DEFINES "${DOC_DEFINES}")
#message( STATUS ${DOC_DEFINES} )
ENDIF()
ENDIF()
add_subdirectory(${FULLPATH})
ENDIF()
ENDIF()
ENDFOREACH(FULLPATH ${FILENAMES})
ENDFUNCTION(OV_ADD_PROJECTS)
@@ -0,0 +1,52 @@
#
# This function is used to add a project to the build in the case where the current directory only contains
# 'branches', 'tags' and 'trunk' directories of a single project. The project will be added using the
# branch specified (if any) in the root CMakeList.txt or trunk otherwise.
#
# The branch variable name that is checked is made up from ${CURRENT_BRANCH_PREFIX}_${DIRNAMEUPPER}.
#
# The script also adds the directory to the global list of projects.
#
FUNCTION(OV_ADD_SINGLE_PROJECT CURRENT_BRANCH_PREFIX)
SET(BRANCH_VARIABLE_NAME "${CURRENT_BRANCH_PREFIX}")
# MESSAGE(STATUS "Parts ${CURRENT_BRANCH_PREFIX} Now ${BRANCH_VARIABLE_NAME}")
# MESSAGE(STATUS "Value ${${BRANCH_VARIABLE_NAME}}")
SET(SUBDIR "SUBDIR-NOTFOUND")
# MESSAGE(STATUS "Checking branch for ${BRANCH_VARIABLE_NAME}")
IF(${BRANCH_VARIABLE_NAME})
SET(BRANCH ${${BRANCH_VARIABLE_NAME}})
IF("${BRANCH}" STREQUAL "__SKIPME")
MESSAGE(STATUS "Note: ${BRANCH_VARIABLE_NAME} has been disabled by setting it to __SKIPME")
ELSE("${BRANCH}" STREQUAL "__SKIPME")
SET(SUBDIR "${BRANCH}")
ENDIF("${BRANCH}" STREQUAL "__SKIPME")
ELSE(${BRANCH_VARIABLE_NAME})
# MESSAGE(STATUS "Going for trunk...")
SET(SUBDIR "${OV_TRUNK}")
ENDIF(${BRANCH_VARIABLE_NAME})
IF(SUBDIR)
# MESSAGE(STATUS "Inserting folder ${SUBDIR}")
# Add the dir to be parsed for documentation later. We need to do this before adding subdir, in case the subdir is the actual docs dir.
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS)
SET(OV_TMP "${OV_TMP};${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS ${OV_TMP})
# MESSAGE(STATUS "BDIR ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIR}")
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS_BUILD_DIR)
SET(OV_TMP "${OV_TMP};${CMAKE_CURRENT_BINARY_DIR}/${SUBDIR}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS_BUILD_DIR ${OV_TMP})
ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR})
ENDIF(SUBDIR)
ENDFUNCTION(OV_ADD_SINGLE_PROJECT)
@@ -0,0 +1,14 @@
FUNCTION(OV_DELAY_LOAD TARGET DLL)
IF(WIN32)
UNSET(FN_LINK_FLAGS)
GET_TARGET_PROPERTY(FN_LINK_FLAGS ${TARGET} LINK_FLAGS)
IF(FN_LINK_FLAGS)
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_FLAGS "${FN_LINK_FLAGS} /DELAYLOAD:${DLL}")
ELSE(FN_LINK_FLAGS)
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_FLAGS "/DELAYLOAD:${DLL}")
ENDIF(FN_LINK_FLAGS)
TARGET_LINK_LIBRARIES(${TARGET} Delayimp)
ELSE(WIN32)
MESSAGE(WARNING "Ignored OV_DELAY_LOAD call on non WIN32 platform")
ENDIF(WIN32)
ENDFUNCTION(OV_DELAY_LOAD)
@@ -0,0 +1,86 @@
INCLUDE(CMakeParseArguments)
#
# Creates launch script from a common OpenViBE template (in "cmake-modules/launchers/"), but dedicated to scenarios to be executed with the Designer
#
# The mandatory 1st argument SCRIPT_PREFIX specifies what the resulting script is called. A platform specific postfix will be added.
# The mandatory 2nd argument EXECUTABLE_NAME specifies what the resulting script will called eventually.
# The optional 3nd argument ARGV1 specifies some extra argument or switch that is given to the launched executable by the script
#
FUNCTION(OV_INSTALL_LAUNCH_SCRIPT)
SET(options PAUSE)
SET(oneValueArgs SCRIPT_PREFIX EXECUTABLE_NAME ICON_PATH)
SET(multiValueArgs PARAMETERS)
CMAKE_PARSE_ARGUMENTS(OV_INSTALL_LAUNCH_SCRIPT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
OV_CONFIGURE_RC(NAME ${OV_INSTALL_LAUNCH_SCRIPT_SCRIPT_PREFIX} ICON_PATH ${OV_INSTALL_LAUNCH_SCRIPT_ICON_PATH})
# Install executable launcher if install_exe option is set to on, the os is WIN32, and no argument has been specified
IF(WIN32 AND INSTALL_EXE AND NOT(OV_INSTALL_LAUNCH_SCRIPT_PAUSE) AND NOT(OV_INSTALL_LAUNCH_SCRIPT_PARAMETERS))
# Add the dir to be parsed for documentation later. We need to do this before adding subdir, in case the subdir is the actual docs dir
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_EXE_PROJECTS_TO_INSTALL)
SET(OV_TMP "${OV_TMP};${OV_INSTALL_LAUNCH_SCRIPT_SCRIPT_PREFIX}")
SET_PROPERTY(GLOBAL PROPERTY OV_EXE_PROJECTS_TO_INSTALL ${OV_TMP})
ELSE()
IF(WIN32)
SET(SCRIPT_POSTFIX ".cmd")
ELSEIF(APPLE)
SET(SCRIPT_POSTFIX "-macos.sh")
ELSEIF(UNIX)
# Debian recommends that extensions such as .sh are not used; On Linux, scripts with such extensions shouldn't be packaged
SET(SCRIPT_POSTFIX ".sh")
ENDIF()
# Extract the filename of the project executable, the variable in the script base will be replaced with it by CONFIGURE_FILE()
GET_TARGET_PROPERTY(TMP_PROJECT_TARGET_PATH ${OV_INSTALL_LAUNCH_SCRIPT_EXECUTABLE_NAME} LOCATION)
GET_FILENAME_COMPONENT(OV_CMD_EXECUTABLE ${TMP_PROJECT_TARGET_PATH} NAME)
IF(${OV_CMD_EXECUTABLE} STREQUAL "TMP_PROJECT_TARGET_PATH-NOTFOUND")
SET(OV_CMD_EXECUTABLE ${OV_INSTALL_LAUNCH_SCRIPT_EXECUTABLE_NAME})
ELSE()
IF(WIN32)
SET(OV_CMD_EXECUTABLE "%OV_PATH_ROOT%/bin/${OV_CMD_EXECUTABLE}")
ENDIF()
ENDIF()
SET(SCRIPT_NAME ${OV_INSTALL_LAUNCH_SCRIPT_SCRIPT_PREFIX}${SCRIPT_POSTFIX})
SET(OV_CMD_ARGS ${OV_INSTALL_LAUNCH_SCRIPT_PARAMETERS})
IF(OV_INSTALL_LAUNCH_SCRIPT_PAUSE)
SET(OV_PAUSE "PAUSE")
ELSE()
SET(OV_PAUSE "")
ENDIF()
CONFIGURE_FILE(${OV_LAUNCHER_SOURCE_PATH}/openvibe-launcher${SCRIPT_POSTFIX}-base ${CMAKE_CURRENT_BINARY_DIR}/${SCRIPT_NAME} @ONLY)
# IF(MULTI_BUILD) # Replace with generator expression in CMake 3.5+
# FOREACH(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
# STRING(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIGU)
# INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${SCRIPT_NAME} DESTINATION ${DIST_ROOT}/${OUTPUTCONFIG})
# ENDFOREACH()
# ELSE()
# INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${SCRIPT_NAME} DESTINATION ${DIST_ROOT})
# ENDIF()
INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${SCRIPT_NAME} DESTINATION ${DIST_ROOT})
ENDIF()
ENDFUNCTION()
FUNCTION(OV_CONFIGURE_RC)
SET(options )
SET(oneValueArgs NAME ICON_PATH)
SET(multiValueArgs )
CMAKE_PARSE_ARGUMENTS(OV_CONFIGURE_RC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
SET(GENERATED_RC_FILE "${CMAKE_BINARY_DIR}/resource-files/${OV_CONFIGURE_RC_NAME}.rc")
IF(OV_CONFIGURE_RC_ICON_PATH)
SET(CONFIGURE_ICON "ID_Icon ICON DISCARDABLE \"${OV_CONFIGURE_RC_ICON_PATH}\"")
ENDIF()
IF(NOT(PROJECT_PRODUCT_NAME))
SET(PROJECT_PRODUCT_NAME "${OV_CONFIGURE_RC_NAME}")
ENDIF()
SET(FILE_DESCRIPTION "${PROJECT_PRODUCT_NAME} for Win32")
CONFIGURE_FILE(
${OV_LAUNCHER_SOURCE_PATH}/resource-file.rc-base
${GENERATED_RC_FILE}
@ONLY)
ENDFUNCTION()
@@ -0,0 +1,55 @@
#
# Win32 only
#
# This concoction mainly exists to locate the boost libraries on WIN32 in the case where our dependency/ folder has only a
# truncated version of boost and we cannot use find_package(). The background story is that we wish to link explicitly
# instead of using automatic linking and specifying a generic boost path to linker before each project definition.
#
# The downside of this is that it assumes the boost library names to have a particular format and only works for VC90/VC100
#
# Function: Links specified boost library defined by COMPONENT and BOOST_VERSION to PROJECT_NAME.
#
FUNCTION(OV_LINK_BOOST_LIB BOOST_COMPONENT BOOST_VERSION)
IF(WIN32)
IF(MSVC)
IF(MSVC_VERSION EQUAL 1500) # vc9
SET(LIB_BOOST "libboost_${BOOST_COMPONENT}-vc90-mt-${BOOST_VERSION}.lib")
SET(LIB_BOOST_DEBUG "libboost_${BOOST_COMPONENT}-vc90-mt-gd-${BOOST_VERSION}.lib")
ELSEIF(MSVC_VERSION EQUAL 1600) # vc 10
SET(LIB_BOOST "libboost_${BOOST_COMPONENT}-vc100-mt-${BOOST_VERSION}.lib")
SET(LIB_BOOST_DEBUG "libboost_${BOOST_COMPONENT}-vc100-mt-gd-${BOOST_VERSION}.lib")
ELSEIF(MSVC_VERSION EQUAL 1700) # vc 11
SET(LIB_BOOST "libboost_${BOOST_COMPONENT}-vc110-mt-${BOOST_VERSION}.lib")
SET(LIB_BOOST_DEBUG "libboost_${BOOST_COMPONENT}-vc110-mt-gd-${BOOST_VERSION}.lib")
ELSEIF(MSVC_VERSION EQUAL 1800) # vc12
SET(LIB_BOOST "libboost_${BOOST_COMPONENT}-vc120-mt-${BOOST_VERSION}.lib")
SET(LIB_BOOST_DEBUG "libboost_${BOOST_COMPONENT}-vc120-mt-gd-${BOOST_VERSION}.lib")
ENDIF(MSVC_VERSION EQUAL 1500)
ENDIF(MSVC)
SET(LIB_BOOST_PATH "-NOTFOUND")
FIND_LIBRARY(LIB_BOOST_PATH NAMES ${LIB_BOOST} PATHS ${OV_CUSTOM_DEPENDENCIES_PATH}/boost/lib NO_DEFAULT_PATH)
IF(LIB_BOOST_PATH)
debug_message( " [ OK ] lib ${LIB_BOOST_PATH}")
IF(TARGET ${PROJECT_NAME})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${LIB_BOOST_PATH})
ENDIF()
ELSE(LIB_BOOST_PATH)
MESSAGE(WARNING " Unable to find boost ${LIB_BOOST}")
ENDIF(LIB_BOOST_PATH)
SET(LIB_BOOST_DEBUG_PATH "-NOTFOUND")
FIND_LIBRARY(LIB_BOOST_DEBUG_PATH NAMES ${LIB_BOOST_DEBUG} PATHS ${OV_CUSTOM_DEPENDENCIES_PATH}/boost/lib NO_DEFAULT_PATH)
IF(LIB_BOOST_DEBUG_PATH)
debug_message( " [ OK ] lib ${LIB_BOOST_DEBUG_PATH}")
IF(TARGET ${PROJECT_NAME})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${LIB_BOOST_DEBUG_PATH})
ENDIF()
ELSE(LIB_BOOST_DEBUG_PATH)
MESSAGE(WARNING " Unable to find boost ${LIB_BOOST_DEBUG}")
ENDIF(LIB_BOOST_DEBUG_PATH)
ENDIF(WIN32)
ENDFUNCTION(OV_LINK_BOOST_LIB)
@@ -0,0 +1,17 @@
IF(NOT OV_MS_SDK_PATH)
GET_FILENAME_COMPONENT(OV_MS_SDK_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Win32SDK\\Directories;Install Dir]" ABSOLUTE CACHE)
ENDIF(NOT OV_MS_SDK_PATH)
IF(NOT OV_MS_SDK_PATH)
GET_FILENAME_COMPONENT(OV_MS_SDK_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MicrosoftSDK\\Directories;Install Dir]" ABSOLUTE CACHE)
ENDIF(NOT OV_MS_SDK_PATH)
IF(NOT OV_MS_SDK_PATH)
GET_FILENAME_COMPONENT(OV_MS_SDK_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" ABSOLUTE CACHE)
ENDIF(NOT OV_MS_SDK_PATH)
IF(NOT OV_MS_SDK_PATH)
MESSAGE(WARNING "Could not find Microsoft Windows SDK")
ENDIF(NOT OV_MS_SDK_PATH)
@@ -0,0 +1,94 @@
#######################################################################
# Software License Agreement (AGPL-3 License)
#
# OpenViBE SDK Test Software
# Based on OpenViBE V1.1.0, Copyright (C) Inria, 2006-2015
# Copyright (C) Inria, 2015-2017,V1.0
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License version 3,
# as published by the Free Software Foundation.
#
# 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 Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#######################################################################
# Cmake script used to wrap multiple commands into one.
#
# Mandatory Input parameters:
# -UNQUOTE: set to 1 to unquote commands before processing, 0 otherwise
# -CMD1 First commands to execute
#
# Optional Input parameters:
# -CMD2 to CMD5: Other commands to execute
#
# Example usage:
# ADD_TEST(NAME ${TEST_NAME}
# COMMAND ${CMAKE_COMMAND}
# -DUNQUOTE=1
# -DCMD1="Command_1"
# -DCMD2="Command_2"
# -DCMD3="Command_3"
# -P ${OpenViBE_TEST_CMAKE_DIR}/OvtRunMultipleCommand3.cmake)
# Macro used to execute a command and check the result
MACRO(EXEC_CHECK RAW_CMD UNQUOTE_CMD)
SET(CMD_ARGS_RAW ${RAW_CMD})
IF(${UNQUOTE_CMD})
# First processing to remove enclosing quotes
STRING(LENGTH "${RAW_CMD}" CMD_STRING_LENGTH)
MATH(EXPR CMD_STRING_LENGTH "${CMD_STRING_LENGTH} - 2")
STRING(SUBSTRING "${RAW_CMD}" 1 ${CMD_STRING_LENGTH} CMD_ARGS_RAW)
ENDIF()
# Process arguments to build an arg list
SEPARATE_ARGUMENTS(CMD_ARGS WINDOWS_COMMAND ${CMD_ARGS_RAW})
EXECUTE_PROCESS(COMMAND ${CMD_ARGS} RESULT_VARIABLE ret_var OUTPUT_VARIABLE output_var)
MESSAGE(STATUS "----------------------------------------------\n")
MESSAGE(STATUS "-----------NEW COMMAND EXECUTED-----------\n\n")
MESSAGE(STATUS "----------------------------------------------\n\n")
MESSAGE(STATUS "-----------Command Name & Arguments-----------\n${RAW_CMD}\n\n")
MESSAGE(STATUS "-----------Command Output-----------\n${output_var}\n\n")
IF(ret_var)
MESSAGE(FATAL_ERROR "-----------Error-----------\n$Running command failed with code: ${ret_var}\n\n")
ENDIF()
ENDMACRO()
IF(NOT DEFINED UNQUOTE)
MESSAGE(FATAL_ERROR "Missing UNQUOTE parameter")
ENDIF()
IF(DEFINED CMD1)
EXEC_CHECK(${CMD1} ${UNQUOTE})
ELSE()
MESSAGE(FATAL_ERROR "At least one command needed in OvtRunMultipleCommand script")
ENDIF()
IF(DEFINED CMD2)
EXEC_CHECK(${CMD2} ${UNQUOTE})
ENDIF()
IF(DEFINED CMD3)
EXEC_CHECK(${CMD3} ${UNQUOTE})
ENDIF()
IF(DEFINED CMD4)
EXEC_CHECK(${CMD4} ${UNQUOTE})
ENDIF()
IF(DEFINED CMD5)
EXEC_CHECK(${CMD5} ${UNQUOTE})
ENDIF()
@@ -0,0 +1,24 @@
# Set OpenViBE specific versions.
function(OV_SET_PROJECT_VERSION)
set(OV_GLOBAL_VERSION_MAJOR ${PROJECT_VERSION_MAJOR} PARENT_SCOPE)
set(OV_GLOBAL_VERSION_MINOR ${PROJECT_VERSION_MINOR} PARENT_SCOPE)
set(OV_GLOBAL_VERSION_PATCH ${PROJECT_VERSION_PATCH} PARENT_SCOPE)
set(OV_GLOBAL_VERSION_BUILD ${PROJECT_VERSION_BUILD} PARENT_SCOPE)
set(OV_GLOBAL_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${PROJECT_VERSION_BUILD} PARENT_SCOPE)
set(OV_PROJECT_BRANCH ${PROJECT_BRANCH} PARENT_SCOPE)
set(OV_PROJECT_COMMITHASH ${PROJECT_COMMITHASH} PARENT_SCOPE)
# Write version to .install file
string(TIMESTAMP BUILD_DATE "%d/%m/%y %H:%M:%S")
set(INSTALL_MANIFEST_STR "[Package]=${PROJECT_NAME}\
\n[Version]=${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${PROJECT_VERSION_BUILD}\
\n[BuildHash]=${PROJECT_COMMITHASH}\
\n[BuildBranch]=${PROJECT_BRANCH}\
\n[BuildDate]=${BUILD_DATE}"
)
file(WRITE ${CMAKE_BINARY_DIR}/.install "${INSTALL_MANIFEST_STR}")
endfunction()
@@ -0,0 +1,89 @@
function(debug_message)
if(${Flag_VerboseOutput})
message(STATUS "${ARGV}")
endif()
endfunction()
# Set version based on git tag.
# If current commit is tagged, use the tag as it is, and add build number based on content of .build file, written by Jenkins
# Else use last tag major and minor number and set patch number to 99
#
# This function should remain generic to be usable in every projects.
function(set_version)
find_package(Git)
if(EXISTS ${CMAKE_SOURCE_DIR}/.version)
# These versions are used by the subprojects by default.
# If you wish to maintain specific version numbers for a subproject, please do so in the projects CMakeLists.txt
file(READ ${CMAKE_SOURCE_DIR}/.version PROJECT_VERSION)
string(STRIP ${PROJECT_VERSION} PROJECT_VERSION)
string(REPLACE "." ";" VERSION_LIST ${PROJECT_VERSION})
list(GET VERSION_LIST 0 PROJECT_VERSION_MAJOR)
list(GET VERSION_LIST 1 PROJECT_VERSION_MINOR)
list(GET VERSION_LIST 2 PROJECT_VERSION_PATCH)
elseif(NOT GIT_FOUND)
message(WARNING "Git not found, set version to 0.0.0")
set(PROJECT_VERSION "0.0.0")
set(PROJECT_BRANCH_STRING "unknown")
set(PROJECT_COMMITHASH_STRING "0")
else()
debug_message("Found Git: ${GIT_EXECUTABLE}")
execute_process(COMMAND ${GIT_EXECUTABLE} describe
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
OUTPUT_VARIABLE PROJECT_VERSION
ERROR_VARIABLE ERROR)
if(ERROR)
set(PROJECT_VERSION "0.0.0")
message(WARNING "No tags found, set version to 0.0.0")
else()
# codename = the name of the current branch
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE PROJECT_BRANCH_STRING)
# command output may contain carriage return
string(STRIP ${PROJECT_BRANCH_STRING} PROJECT_BRANCH_STRING)
# commithash = short hash of latest revision
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE PROJECT_COMMITHASH_STRING)
# command output may contain carriage return
string(STRIP ${PROJECT_COMMITHASH_STRING} PROJECT_COMMITHASH_STRING)
endif()
endif()
# if current commit is not tagged result is formed as: "major.minor.patch-number of commits since last tag-hash"
string(STRIP ${PROJECT_VERSION} PROJECT_VERSION)
string(REPLACE "-" ";" version_list ${PROJECT_VERSION})
list(LENGTH version_list version_list_length)
if(${version_list_length} EQUAL 3) # if result is formed as "major.minor.patch-number of commits since last tag-hash" set patch as 99
list(GET version_list 0 PROJECT_VERSION)
set(PROJECT_VERSION_PATCH 99)
endif()
string(REPLACE "." ";" version_list ${PROJECT_VERSION})
list(GET version_list 0 PROJECT_VERSION_MAJOR)
list(GET version_list 1 PROJECT_VERSION_MINOR)
if(NOT PROJECT_VERSION_PATCH)
list(GET version_list 2 PROJECT_VERSION_PATCH)
endif()
# These versions are used by the subprojects by default.
# If you wish to maintain specific version numbers for a subproject, please do so in the projects CMakeLists.txt
if(EXISTS ${CMAKE_SOURCE_DIR}/.build)
file(READ ${CMAKE_SOURCE_DIR}/.build PROJECT_VERSION_BUILD)
string(STRIP ${PROJECT_VERSION_BUILD} PROJECT_VERSION_BUILD)
else()
set(PROJECT_VERSION_BUILD 0)
endif()
set(PROJECT_BRANCH ${PROJECT_BRANCH_STRING} PARENT_SCOPE)
set(PROJECT_COMMITHASH ${PROJECT_COMMITHASH_STRING} PARENT_SCOPE)
set(PROJECT_VERSION_MAJOR ${PROJECT_VERSION_MAJOR} PARENT_SCOPE)
set(PROJECT_VERSION_MINOR ${PROJECT_VERSION_MINOR} PARENT_SCOPE)
set(PROJECT_VERSION_PATCH ${PROJECT_VERSION_PATCH} PARENT_SCOPE)
set(PROJECT_VERSION_BUILD ${PROJECT_VERSION_BUILD} PARENT_SCOPE)
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} PARENT_SCOPE)
endfunction()
@@ -0,0 +1,38 @@
#!/bin/bash
#
# This script is meant to be launched from inside an OpenViBE application (such as a scenario in Designer)
#
CALLCMD=$1
shift
ov_run_bg=0
if [ "$1" == "--run-bg" ]; then
ov_run_bg=1
shift
fi
if [ "$OV_PATH_ROOT" == "" ]; then
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
OV_PATH_ROOT="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$OV_PATH_ROOT/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
OV_PATH_ROOT="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
fi
if [ "$OV_PATH_BIN" == "" ]; then
OV_PATH_BIN="$OV_PATH_ROOT/bin"
fi
ret_code=0
if [ $ov_run_bg == 0 ]; then
eval "$OV_PATH_BIN/$CALLCMD" @OV_CMD_ARGS@ $*
ret_code=$?
else
"$OV_PATH_BIN/$CALLCMD" @OV_CMD_ARGS@ $* &
fi
exit $ret_code
@@ -0,0 +1,18 @@
@echo off
REM
REM This script is meant to be launched from an environment with the OV_PATH_BIN env variable set externally
REM
SET "OV_RUN_APP=%1"
SHIFT
SET OV_RUN_IN_BG=
IF /i "%1"=="--run-bg" (
REM Run in background. The first arg to START is the app title.
SET OV_RUN_IN_BG=START "%OV_RUN_APP%"
SHIFT
)
%OV_RUN_IN_BG% "%OV_PATH_BIN%\%OV_RUN_APP%" %1 %2 %3 %4 %5
@@ -0,0 +1,60 @@
#!/bin/bash
## By default, paths specified by CMake install will be used to locate OpenViBE components. If defined, these ENV variables can override the CMake defines.
#export OV_PATH_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
#export OV_PATH_BIN="$OV_PATH_ROOT/bin"
#export OV_PATH_LIB="$OV_PATH_ROOT/lib"
#export OV_PATH_DATA="$OV_PATH_ROOT/share/openvibe"
# Tries to locate matlab executable from $PATH, and set the library path to the corresponding matlab libs.
if [ "`which matlab`" != "" ] ; then
MATLAB_ROOT=`matlab -e | grep "^MATLAB=" | sed -e "s/^MATLAB=//"`
MATLAB_ARCH=`matlab -e | grep "^ARCH=" | sed -e "s/^ARCH=//"`
MATLAB_LIBPATH="$MATLAB_ROOT/bin/$MATLAB_ARCH"
# echo Matlab libs expected at $MATLAB_LIBPATH
export DYLD_LIBRARY_PATH="$MATLAB_LIBPATH:$DYLD_LIBRARY_PATH"
fi
if [ "$OV_PATH_ROOT" == "" ]; then
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
OV_PATH_ROOT="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$OV_PATH_ROOT/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
OV_PATH_ROOT="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
fi
export DYLD_LIBRARY_PATH="$OV_PATH_LIB:@CMAKE_SOURCE_DIR@/dependencies/lib:$DYLD_LIBRARY_PATH"
export LC_ALL=C
export GTK_PATH=/usr/local/lib/gtk-2.0
export LUA_CPATH="$OV_PATH_LIB/lib?.dylib;`echo 'print(package.cpath)' | lua - `"
export LUA_PATH="$OV_PATH_BIN/?.lua;`echo 'print(package.path)' | lua - `"
# The following line is there to help in cases where OpenViBE can consume excessive
# amounts of CPU or grind the swap. You can remove it if you know what you're doing.
renice 19 $$
ov_debugger=
if [ "$1" == "--debug" ]; then
ov_debugger="gdb --args"
shift
fi
ov_run_bg=0
if [ "$1" == "--run-bg" ]; then
ov_run_bg=1
shift
fi
ret_code=0
if [ $ov_run_bg == 0 ]; then
eval $ov_debugger "$OV_PATH_BIN/@OV_CMD_EXECUTABLE@" @OV_CMD_ARGS@ $*
ret_code=$?
else
$ov_debugger "$OV_PATH_BIN/@OV_CMD_EXECUTABLE@" @OV_CMD_ARGS@ $* &
fi
exit $ret_code
@@ -0,0 +1,65 @@
@ECHO OFF
SETLOCAL EnableExtensions
SETLOCAL EnableDelayedExpansion
REM If not set to PASSIVE, OpenMP (Eigen) boxes may load the cores fully even if there's little to do.
SET "OMP_WAIT_POLICY=@OV_OMP_WAIT_POLICY@"
REM Get the directory location of this script, assume it contains the OpenViBE dist tree. These variables will be used by OpenViBE executables.
SET "OV_PATH_ROOT=%~dp0"
SET "OV_PATH_BIN=%OV_PATH_ROOT%\bin"
SET "OV_PATH_LIB=%OV_PATH_ROOT%\bin"
SET "OV_PATH_DATA=%OV_PATH_ROOT%\share\openvibe"
REM Default behavior
SET OV_PAUSE=@OV_PAUSE@
SET OV_RUN_IN_BG=
REM Parse out Windows specific args ...
SET "ARGS="
SET EMPTY=
:loop
SET "STRIPPEDARG=%~1"
if NOT !STRIPPEDARG! == !EMPTY! (
IF /i "!STRIPPEDARG!" == "--no-pause" (
SET OV_PAUSE=
goto found:
)
IF /i "!STRIPPEDARG!" == "--pause" (
SET OV_PAUSE=PAUSE
goto found:
)
IF /i "!STRIPPEDARG!" == "--run-bg" (
REM Run in background, disable pause. The second parameter below is because CMD requires a 'title'
SET OV_RUN_IN_BG=START "@OV_CMD_EXECUTABLE@"
SET OV_PAUSE=
goto found:
)
REM Pass the non-stripped arg to the launched application...
SET ARGS=%ARGS% %1
:found
SHIFT
goto loop:
)
REM Set dependency paths etc...
REM SET "OV_ENVIRONMENT_FILE=%OV_PATH_ROOT%\bin\OpenViBE-set-env.cmd"
REM IF NOT EXIST "%OV_ENVIRONMENT_FILE%" (
REM ECHO Error: "%OV_ENVIRONMENT_FILE%" was not found
REM GOTO EndOfScript
REM )
REM CALL "%OV_ENVIRONMENT_FILE%"
SET PATH=%OV_PATH_LIB%;%PATH%
REM cmake variable OV_CMD_ARGS below may specify additional arguments outside this script
%OV_RUN_IN_BG% "@OV_CMD_EXECUTABLE@" @OV_CMD_ARGS@ %ARGS%
:EndOfScript
%OV_PAUSE%
@@ -0,0 +1,52 @@
#!/bin/bash
## By default, paths specified by CMake install will be used to locate OpenViBE components. If defined, these ENV variables can override the CMake defines.
#export OV_PATH_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
#export OV_PATH_BIN="$OV_PATH_ROOT/bin"
#export OV_PATH_LIB="$OV_PATH_ROOT/lib"
#export OV_PATH_DATA="$OV_PATH_ROOT/share/openvibe"
if [ "$OV_PATH_ROOT" == "" ]; then
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
OV_PATH_ROOT="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$OV_PATH_ROOT/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
OV_PATH_ROOT="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
fi
export LD_LIBRARY_PATH="$OV_PATH_LIB:@CMAKE_SOURCE_DIR@/dependencies/lib:$LD_LIBRARY_PATH"
export LC_ALL=C
# The following line is there to help in cases where OpenViBE can consume excessive
# amounts of CPU or grind the swap. You can remove it if you know what you're doing.
renice 19 $$
ov_debugger=
if [ "$1" == "--debug" ]; then
ov_debugger="gdb --args"
shift
fi
if [ "$1" == "--memcheck" ]; then
ov_debugger="valkyrie "
#ov_debugger="valgrind --tool=memcheck --log-file='valgrind_@OV_CMD_EXECUTABLE@_%p.log'"
shift
fi
ov_run_bg=0
if [ "$1" == "--run-bg" ]; then
ov_run_bg=1
shift
fi
ret_code=0
if [ $ov_run_bg == 0 ]; then
eval $ov_debugger "$OV_PATH_BIN/@OV_CMD_EXECUTABLE@" @OV_CMD_ARGS@ $*
ret_code=$?
else
$ov_debugger "$OV_PATH_BIN/@OV_CMD_EXECUTABLE@" @OV_CMD_ARGS@ $* &
fi
exit $ret_code
@@ -0,0 +1,40 @@
#include "winres.h"
@CONFIGURE_ICON@
// Language is US English
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
#ifndef DEBUG
#define VER_DEBUG 0
#else
#define VER_DEBUG VS_FF_DEBUG
#endif
// Add version information
VS_VERSION_INFO VERSIONINFO
FILEVERSION @OV_GLOBAL_VERSION_MAJOR@,@OV_GLOBAL_VERSION_MINOR@,@OV_GLOBAL_VERSION_PATCH@,@OV_GLOBAL_VERSION_BUILD@
PRODUCTVERSION @OV_GLOBAL_VERSION_MAJOR@,@OV_GLOBAL_VERSION_MINOR@,@OV_GLOBAL_VERSION_PATCH@,@OV_GLOBAL_VERSION_BUILD@
FILEOS VOS__WINDOWS32
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", "@COMPANY_NAME@"
VALUE "FileDescription", "@FILE_DESCRIPTION@"
VALUE "FileVersion", "@OV_GLOBAL_VERSION_STRING@"
VALUE "InternalName", "@PROJECT_NAME@"
VALUE "LegalCopyright", "Copyright - @COMPANY_NAME@ @COPYRIGHT_DATE@"
VALUE "OriginalFilename", "@PROJECT_NAME@"
VALUE "ProductName", "@PROJECT_PRODUCT_NAME@"
VALUE "ProductVersion", "@OV_GLOBAL_VERSION_STRING@"
END
END
BLOCK "VarFileInfo"
BEGIN
// Indicates that Software is translated in US English in the Windows ANSI codepage (1252).
VALUE "Translation", 0x409, 1252
END
END