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,41 @@
# ---------------------------------
# Finds libmensia-advanced-visualization
# Adds library to target
# Adds include path
# ---------------------------------
# OPTION(DYNAMIC_LINK_LIBADVVIZ "Dynamically link libmensia-advanced-visualization" ON)
# Default is dynamic library
IF(NOT DEFINED DYNAMIC_LINK_LIBADVVIZ)
OPTION(DYNAMIC_LINK_LIBADVVIZ "Dynamically link lib mensia-advanced-visualization" OFF)
ENDIF()
IF(DYNAMIC_LINK_LIBADVVIZ)
ADD_DEFINITIONS(-DLMAV_Shared)
SET(LIBADVVIZ_LINKING "")
ELSE()
ADD_DEFINITIONS(-DLMAV_Static)
SET(LIBADVVIZ_LINKING -static)
ENDIF()
SET(PATH_LIBADVVIZ "PATH_LIBADVVIZ-NOTFOUND")
SET(MENSIA_SRC_DIR ${CMAKE_SOURCE_DIR}/libraries/lib-advanced-visualization/include/)
FIND_PATH(PATH_LIBADVVIZ mensia/advanced-visualization.hpp PATHS ${MENSIA_SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_LIBADVVIZ)
debug_message( " Found mensia-advanced-visualization... ${PATH_LIBADVVIZ}")
INCLUDE_DIRECTORIES(${PATH_LIBADVVIZ}/)
IF(TARGET ${PROJECT_NAME})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} mensia-advanced-visualization${LIBADVVIZ_LINKING})
debug_message( "Linking with mensia-advanced-visualization${LIBADVVIZ_LINKING}")
ENDIF()
IF(TARGET ${PROJECT_NAME}-static)
TARGET_LINK_LIBRARIES(${PROJECT_NAME}-static mensia-advanced-visualization${LIBADVVIZ_LINKING})
debug_message( "Linking with mensia-advanced-visualization${LIBADVVIZ_LINKING}")
ENDIF()
ADD_DEFINITIONS(-DTARGET_HAS_LibAdvancedVisualization)
ELSE()
MESSAGE(WARNING " FAILED to find mensia-advanced-visualization...")
ENDIF()
@@ -0,0 +1,102 @@
# ---------------------------------
# Finds OpenViBE SDK binary distribution
# ---------------------------------
if(NOT CMAKE_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio*")
set(MULTI_BUILD TRUE)
elseif(CMAKE_BUILD_TYPE AND OV_PACKAGE)
set(SOLO_PACKAGE TRUE)
elseif(CMAKE_BUILD_TYPE)
set(SOLO_BUILD TRUE)
else()
message(FATAL_ERROR "Build should specify a type or use a multi-type generator (like Visual Studio)")
endif()
if(NOT DEFINED TRIED_FIND_OVSDK)
if(MULTI_BUILD)
set(SEEK_PATHS ${OPENVIBE_SDK_PATH};${LIST_DEPENDENCIES_PATH})
unset(OPENVIBE_SDK_PATH CACHE)
foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
# set(OPENVIBE_SDK_PATH ${OPENVIBE_SDK_PATH}/$<UPPER_CASE:$<CONFIG>>)
string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIGU )
unset(OPENVIBE_SDK_PATH_TMP CACHE)
find_path(OPENVIBE_SDK_PATH_TMP include/openvibe/ov_all.h PATHS ${SEEK_PATHS} PATH_SUFFIXES openvibe-sdk-${OUTPUTCONFIG} ${OUTPUTCONFIG} NO_DEFAULT_PATH)
set(OPENVIBE_SDK_PATH_${OUTPUTCONFIGU} ${OPENVIBE_SDK_PATH_TMP})
if(OPENVIBE_SDK_PATH_TMP)
message("Found ${OUTPUTCONFIG} of sdk at ${OPENVIBE_SDK_PATH_TMP}")
string(CONCAT OPENVIBE_SDK_PATH ${OPENVIBE_SDK_PATH} $<$<CONFIG:${OUTPUTCONFIGU}>:${OPENVIBE_SDK_PATH_TMP}>)
set(AT_LEAST_ONE_OV_BUILD TRUE)
endif()
endforeach()
if(NOT DEFINED AT_LEAST_ONE_OV_BUILD)
message(FATAL_ERROR "Did not find any valid build of OpenViBE SDK")
endif()
else() # Regular build
string(TOLOWER ${CMAKE_BUILD_TYPE} OV_SDK_BUILD_TYPE)
find_path(OPENVIBE_SDK_PATH include/openvibe/ov_all.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES openvibe-sdk-${OV_SDK_BUILD_TYPE} NO_DEFAULT_PATH)
if(NOT OPENVIBE_SDK_PATH)
message(FATAL_ERROR " FAILED to find OpenViBE SDK [${OPENVIBE_SDK_PATH}]")
endif()
string(REGEX REPLACE "\\\\+" "/" OPENVIBE_SDK_PATH ${OPENVIBE_SDK_PATH})
debug_message(" Found OpenViBE SDK... [${OPENVIBE_SDK_PATH}]")
endif()
set(TRIED_FIND_OVSDK TRUE)
endif()
if(INSTALL_SDK)
if(MULTI_BUILD) # Replace with generator expression in CMake 3.5+
foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIGU)
file(GLOB EXE_SCRIPT_LIST "${OPENVIBE_SDK_PATH_${OUTPUTCONFIGU}}/*.cmd" "${OPENVIBE_SDK_PATH_${OUTPUTCONFIGU}}/*.sh")
if(EXE_SCRIPT_LIST)
foreach(SCRIPT IN LISTS EXE_SCRIPT_LIST)
get_filename_component(base_name ${SCRIPT} NAME_WE)
if(WIN32)
set(exe_name "${base_name}.exe")
else()
set(exe_name ${base_name})
endif()
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()
IF(WIN32)
SET(OV_CMD_EXECUTABLE "%OV_PATH_ROOT%/bin/${exe_name}")
ENDIF()
SET(SCRIPT_NAME ${base_name}${SCRIPT_POSTFIX})
SET(OV_CMD_ARGS "")
SET(OV_PAUSE "")
CONFIGURE_FILE(${OV_LAUNCHER_SOURCE_PATH}/openvibe-launcher${SCRIPT_POSTFIX}-base ${CMAKE_CURRENT_BINARY_DIR}/${SCRIPT_NAME} @ONLY)
INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${SCRIPT_NAME} DESTINATION ${DIST_ROOT})
endforeach()
endif()
install(DIRECTORY ${OPENVIBE_SDK_PATH_${OUTPUTCONFIGU}}/include DESTINATION ${DIST_INCLUDEDIR} CONFIGURATIONS ${OUTPUTCONFIG})
install(DIRECTORY ${OPENVIBE_SDK_PATH_${OUTPUTCONFIGU}}/bin DESTINATION ${DIST_BINDIR} CONFIGURATIONS ${OUTPUTCONFIG}) # FILES_MATCHING PATTERN "openvibe-plugins*dll") or *so*
install(DIRECTORY ${OPENVIBE_SDK_PATH_${OUTPUTCONFIGU}}/lib DESTINATION ${DIST_LIBDIR} CONFIGURATIONS ${OUTPUTCONFIG}) # FILES_MATCHING PATTERN "openvibe-plugins*dll")
# install(DIRECTORY ${OPENVIBE_SDK_PATH_${OUTPUTCONFIGU}}/etc DESTINATION ${DIST_SYSCONFDIR} CONFIGURATIONS ${OUTPUTCONFIG})
install(DIRECTORY ${OPENVIBE_SDK_PATH_${OUTPUTCONFIGU}}/share DESTINATION ${DIST_DATADIR} CONFIGURATIONS ${OUTPUTCONFIG})
endforeach()
else()
file(GLOB EXE_SCRIPT_LIST "${OPENVIBE_SDK_PATH}/*.cmd" "${OPENVIBE_SDK_PATH}/*.sh")
foreach(SCRIPT IN LISTS EXE_SCRIPT_LIST)
get_filename_component(base_name ${SCRIPT} NAME_WE)
if(WIN32)
set(exe_name "${base_name}.exe")
else()
set(exe_name ${base_name})
endif()
OV_INSTALL_LAUNCH_SCRIPT(SCRIPT_PREFIX ${base_name} EXECUTABLE_NAME ${exe_name} NOPROJECT)
endforeach()
install(DIRECTORY ${OPENVIBE_SDK_PATH}/include DESTINATION ${DIST_INCLUDEDIR})
install(DIRECTORY ${OPENVIBE_SDK_PATH}/bin DESTINATION ${DIST_BINDIR}) # FILES_MATCHING PATTERN "openvibe-plugins*dll") or *so*
install(DIRECTORY ${OPENVIBE_SDK_PATH}/lib DESTINATION ${DIST_LIBDIR}) # FILES_MATCHING PATTERN "openvibe-plugins*dll")
# install(DIRECTORY ${OPENVIBE_SDK_PATH}/etc DESTINATION ${DIST_SYSCONFDIR})
install(DIRECTORY ${OPENVIBE_SDK_PATH}/share DESTINATION ${DIST_DATADIR})
endif()
endif()
@@ -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,33 @@
# ---------------------------------
# Finds openvibe-toolkit
# Adds library to target
# Adds include path
# ---------------------------------
option(LINK_OPENVIBE_VISUALIZATION_TOOLKIT "By default, link openvibe-visualization-toolkit, otherwise only use the includes" ON)
option(DYNAMIC_LINK_OPENVIBE_VISUALIZATION_TOOLKIT "Dynamically link openvibe-visualization-toolkit" ON)
if(DYNAMIC_LINK_OPENVIBE_VISUALIZATION_TOOLKIT)
set(OPENVIBE_VISUALIZATION_TOOLKIT_LINKING "")
add_definitions(-DOVVIZ_Shared)
else()
set(OPENVIBE_VISUALIZATION_TOOLKIT_LINKING "-static")
add_definitions(-DOVVIZ_Static)
endif()
set(SRC_DIR ${OV_BASE_DIR}/visualization-toolkit/include)
set(PATH_OPENVIBE_VISUALIZATION_TOOLKIT "PATH_OPENVIBE_VISUALIZATION_TOOLKIT-NOTFOUND")
find_path(PATH_OPENVIBE_VISUALIZATION_TOOLKIT visualization-toolkit/ovviz_all.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
if(PATH_OPENVIBE_VISUALIZATION_TOOLKIT)
debug_message( " Found openvibe-toolkit... ${PATH_OPENVIBE_VISUALIZATION_TOOLKIT}")
include_directories(${PATH_OPENVIBE_VISUALIZATION_TOOLKIT}/)
if(LINK_OPENVIBE_VISUALIZATION_TOOLKIT)
target_link_libraries(${PROJECT_NAME} openvibe-visualization-toolkit${OPENVIBE_VISUALIZATION_TOOLKIT_LINKING})
endif()
add_definitions(-DTARGET_HAS_OpenViBEVisualizationToolkit)
else()
message(WARNING " FAILED to find openvibe-visualization-toolkit...")
endif()
@@ -0,0 +1,9 @@
# ---------------------------------
# Finds JSON sources
# Sets json_source_files
# Adds appropriate include dir
# ---------------------------------
FILE(GLOB_RECURSE json_source_files ${OV_SOURCE_DEPENDENCIES_PATH}/json/*.cpp ${OV_SOURCE_DEPENDENCIES_PATH}/json/*.c ${OV_SOURCE_DEPENDENCIES_PATH}/json/*.h)
INCLUDE_DIRECTORIES("${OV_SOURCE_DEPENDENCIES_PATH}")
SET(SRC_FILES "${SRC_FILES};${json_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,19 @@
# ---------------------------------
# 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 ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES boost NO_DEFAULT_PATH)
FIND_PATH(PATH_BOOST "include/boost/config/auto_link.hpp" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES 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,32 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
IF(UNIX)
FIND_LIBRARY(LIB_Boost_Filesystem NAMES "boost_filesystem-mt" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_Filesystem NAMES "boost_filesystem-mt" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib)
FIND_LIBRARY(LIB_Boost_Filesystem NAMES "boost_filesystem" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_Filesystem NAMES "boost_filesystem" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib)
IF(LIB_Boost_Filesystem)
debug_message( " [ OK ] lib ${LIB_Boost_Filesystem}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Filesystem} )
ELSE(LIB_Boost_Filesystem)
MESSAGE(WARNING " [FAILED] lib boost_Filesystem-mt")
ENDIF(LIB_Boost_Filesystem)
# 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(UNIX)
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,23 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
IF(UNIX)
FIND_LIBRARY(LIB_Boost_Regex NAMES "boost_regex-mt" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_Regex NAMES "boost_regex-mt" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib)
FIND_LIBRARY(LIB_Boost_Regex NAMES "boost_regex" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_Regex NAMES "boost_regex" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib)
IF(LIB_Boost_Regex)
debug_message( " [ OK ] lib ${LIB_Boost_Regex}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Regex} )
ELSE(LIB_Boost_Regex)
MESSAGE(WARNING " [FAILED] lib boost_regex-mt")
ENDIF(LIB_Boost_Regex)
ENDIF(UNIX)
IF(WIN32)
OV_LINK_BOOST_LIB("regex" ${OV_WIN32_BOOST_VERSION})
ENDIF(WIN32)
@@ -0,0 +1,23 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
IF(UNIX)
FIND_LIBRARY(LIB_Boost_System NAMES "boost_system-mt" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_System NAMES "boost_system-mt" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib)
FIND_LIBRARY(LIB_Boost_System NAMES "boost_system" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_System NAMES "boost_system" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib)
IF(LIB_Boost_System)
debug_message( " [ OK ] lib ${LIB_Boost_System}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_System} )
ELSE(LIB_Boost_System)
MESSAGE(WARNING " [FAILED] lib boost_system-mt")
ENDIF(LIB_Boost_System)
ENDIF(UNIX)
IF(WIN32)
OV_LINK_BOOST_LIB("system" ${OV_WIN32_BOOST_VERSION})
ENDIF(WIN32)
@@ -0,0 +1,44 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
IF(UNIX)
FIND_LIBRARY(LIB_Boost_Thread NAMES "boost_thread-mt" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_Thread NAMES "boost_thread-mt" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib)
FIND_LIBRARY(LIB_Boost_Thread NAMES "boost_thread" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_Thread NAMES "boost_thread" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib)
IF(LIB_Boost_Thread)
debug_message( " [ OK ] lib ${LIB_Boost_Thread}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Thread} )
ELSE(LIB_Boost_Thread)
MESSAGE(WARNING " [FAILED] lib boost_thread-mt")
ENDIF(LIB_Boost_Thread)
# 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)
# For Ubuntu 13.04 (interprocess/ipc/message_queue.hpp in ovasCPluginExternalStimulations.cpp caused dep)
IF(NOT APPLE)
FIND_LIBRARY(LIB_STANDARD_MODULE_RT rt)
IF(LIB_STANDARD_MODULE_RT)
debug_message( " Found rt...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_RT})
ELSE(LIB_STANDARD_MODULE_RT)
MESSAGE(WARNING " FAILED to find rt...")
ENDIF(LIB_STANDARD_MODULE_RT)
ENDIF()
ENDIF(UNIX)
IF(WIN32)
OV_LINK_BOOST_LIB("thread" ${OV_WIN32_BOOST_VERSION})
ENDIF(WIN32)
@@ -0,0 +1,34 @@
# ---------------------------------
# Finds Eigen headers
#
# Adds include path
# ---------------------------------
IF(WIN32)
SET(PATH_EIGEN "PATH_EIGEN-NOTFOUND")
FIND_PATH(PATH_EIGEN Eigen/Eigen PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES 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()
ENDIF()
IF(UNIX)
INCLUDE("FindPkgConfig")
pkg_check_modules(EIGEN eigen3)
ENDIF()
IF(EIGEN_FOUND)
debug_message(" Found eigen3...")
INCLUDE_DIRECTORIES("${EIGEN_INCLUDE_DIRS}")
ADD_DEFINITIONS(${EIGEN_CFLAGS})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEIGEN)
ELSE()
MESSAGE(WARNING " FAILED to find eigen3...")
ENDIF()
@@ -0,0 +1,70 @@
# ---------------------------------
# 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 "include/expat.h"
PATHS "${LIST_DEPENDENCIES_PATH}")
FIND_LIBRARY(EXPAT_expat_LIBRARY
NAMES lib/expat
PATHS "${LIST_DEPENDENCIES_PATH}")
ENDIF(UNIX)
IF(WIN32)
SET(EXPAT_expat_INCLUDE_PATH "EXPAT_expat_INCLUDE_PATH-NOTFOUND")
FIND_PATH(EXPAT_expat_INCLUDE_PATH "expat/Source/libexpat.h"
PATHS "${LIST_DEPENDENCIES_PATH}")
FIND_LIBRARY(EXPAT_expat_LIBRARY
NAMES libexpat
PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES "expat/Libs" "expat/Bin")
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,41 @@
# ---------------------------------
# Finds GSL toolkit
#
# Sets GSL_FOUND
# Sets GSL_LIBRARIES
# Sets GSL_LIBRARY_DIRS
# Sets GSL_LDFLAGS
# Sets GSL_LDFLAGS_OTHERS
# Sets GSL_INCLUDE_DIRS
# Sets GSL_CFLAGS
# Sets GSL_CFLAGS_OTHERS
#
# Adds library to target
# Adds include path
# ---------------------------------
INCLUDE("FindThirdPartyPkgConfig")
pkg_check_modules(GSL gsl)
IF(GSL_FOUND)
debug_message(" Found gsl...")
INCLUDE_DIRECTORIES(${GSL_INCLUDE_DIRS})
ADD_DEFINITIONS(${GSL_CFLAGS})
ADD_DEFINITIONS(${GSL_CFLAGS_OTHERS})
# LINK_DIRECTORIES(${GSL_LIBRARY_DIRS})
FOREACH(GSL_LIB ${GSL_LIBRARIES})
SET(GSL_LIB1 "GSL_LIB1-NOTFOUND")
FIND_LIBRARY(GSL_LIB1 NAMES ${GSL_LIB} PATHS ${GSL_LIBRARY_DIRS} ${GSL_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(GSL_LIB1 NAMES ${GSL_LIB})
IF(GSL_LIB1)
debug_message(" [ OK ] Third party lib ${GSL_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${GSL_LIB1})
ELSE(GSL_LIB1)
MESSAGE(WARNING " [FAILED] Third party lib ${GSL_LIB}")
ENDIF(GSL_LIB1)
ENDFOREACH(GSL_LIB)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyGSL)
ELSE(GSL_FOUND)
MESSAGE(WARNING " FAILED to find gsl...")
ENDIF(GSL_FOUND)
@@ -0,0 +1,79 @@
# ---------------------------------
# Finds GTK toolkit
#
# Sets GTK_FOUND
# Sets GTK_LIBRARIES
# Sets GTK_LIBRARY_DIRS
# Sets GTK_LDFLAGS
# Sets GTK_LDFLAGS_OTHERS
# Sets GTK_INCLUDE_DIRS
# Sets GTK_CFLAGS
# Sets GTK_CFLAGS_OTHERS
# ---------------------------------
INCLUDE("FindPkgConfig")
IF(WIN32)
pkg_check_modules(GTK gtk+-win32-2.0 gthread-2.0)
ELSE(WIN32)
pkg_check_modules(GTK "gtk+-2.0" "gthread-2.0")
ENDIF(WIN32)
IF(${OV_DEPENDENCIES_PLATFORM_FOLDER_NAME} STREQUAL "dependencies")
SET(GTK_LIB_SUBFOLDER "2.10.0")
SET(LIB_Z_NAME "zdll")
ELSE()
SET(GTK_LIB_SUBFOLDER "i686-pc-vs10")
SET(LIB_Z_NAME "zlib1")
ENDIF()
IF(GTK_FOUND)
debug_message( " Found GTK+...")
# This is a bit convoluted way of finding zlib (because GTK_INCLUDE_DIRS
# is actually a list of folders, not a single one)
find_path(PATH_ZLIB gtk/include/zlib.h PATHS ${LIST_DEPENDENCIES_PATH} NO_DEFAULT_PATH)
INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS} "${PATH_ZLIB}/gtk/include")
#shouldn't add GTK_CFLAGS, this results in AdditionalIncludeDirectories becoming broken in visual studio
#ADD_DEFINITIONS(${GTK_CFLAGS} ${GTK_CFLAGS_OTHERS} ${GTHREAD_CFLAGS}${GTHREAD_CFLAGS_OTHERS})
#LINK_DIRECTORIES(${GTK_LIBRARY_DIRS} ${GTHREAD_LIBRARY_DIRS})
IF(WIN32)
SET( GTK_LIB_LIST ${GTK_LIBRARIES} ${GTHREAD_LIBRARIES} ${LIB_Z_NAME})
ELSE(WIN32)
SET( GTK_LIB_LIST ${GTK_LIBRARIES} ${GTHREAD_LIBRARIES} z)
ENDIF(WIN32)
IF(WIN32)
# gdi32.lib could be under the MS Windows SDK
INCLUDE("OvSetWindowsSDKPath")
INSTALL(
DIRECTORY ${GTK_LIBRARY_DIRS}/../bin/
DESTINATION ${DIST_BINDIR}
FILES_MATCHING PATTERN "*.dll")
INSTALL(
DIRECTORY ${GTK_LIBRARY_DIRS}/gtk-2.0/${GTK_LIB_SUBFOLDER}/engines/
DESTINATION ${DIST_LIBDIR}/gtk-2.0/${GTK_LIB_SUBFOLDER}/engines/
FILES_MATCHING PATTERN "*.dll")
INSTALL(
FILES ${GTK_LIBRARY_DIRS}/..//etc/gtk-2.0/gtkrc
DESTINATION ${DIST_SYSCONFDIR}/gtk-2.0/)
ENDIF()
FOREACH(GTK_LIB ${GTK_LIB_LIST})
SET(GTK_LIB1 "GTK_LIB1-NOTFOUND")
FIND_LIBRARY(GTK_LIB1 NAMES ${GTK_LIB} PATHS ${GTK_LIBRARY_DIRS} ${GTK_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(GTK_LIB1 NAMES ${GTK_LIB} PATHS ${GTK_LIBRARY_DIRS} ${GTK_LIBDIR})
IF(WIN32)
FIND_LIBRARY(GTK_LIB1 NAMES ${GTK_LIB} PATHS ${OV_MS_SDK_PATH}/lib)
ENDIF(WIN32)
IF(GTK_LIB1)
debug_message( " [ OK ] Third party lib ${GTK_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${GTK_LIB1})
ELSE(GTK_LIB1)
MESSAGE(WARNING " [FAILED] Third party lib ${GTK_LIB}")
ENDIF(GTK_LIB1)
ENDFOREACH(GTK_LIB)
ELSE(GTK_FOUND)
MESSAGE(WARNING " FAILED to find GTK+...")
IF(NOT PKG_CONFIG_FOUND)
MESSAGE(WARNING " Did not even find pkg-config exe")
ENDIF(NOT PKG_CONFIG_FOUND)
ENDIF(GTK_FOUND)
@@ -0,0 +1,54 @@
# ---------------------------------
# Finds OpenGL toolkit
#
# Sets OpenGL_FOUND
# Sets OpenGL_LIBRARIES
# Sets OpenGL_LIBRARY_DIRS
# Sets OpenGL_LDFLAGS
# Sets OpenGL_LDFLAGS_OTHERS
# Sets OpenGL_INCLUDE_DIRS
# Sets OpenGL_CFLAGS
# Sets OpenGL_CFLAGS_OTHERS
# ---------------------------------
IF(WIN32)
FIND_LIBRARY(LIB_STANDARD_MODULE_GL opengl32)
FIND_LIBRARY(LIB_STANDARD_MODULE_GLU glu32)
IF(LIB_STANDARD_MODULE_GL AND LIB_STANDARD_MODULE_GLU)
debug_message( " Found gl...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_GL})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_GLU})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyOpenGL)
ELSE(LIB_STANDARD_MODULE_GL AND LIB_STANDARD_MODULE_GLU)
MESSAGE(WARNING " FAILED to find gl...")
ENDIF(LIB_STANDARD_MODULE_GL AND LIB_STANDARD_MODULE_GLU)
ELSE(WIN32)
INCLUDE("FindPkgConfig")
pkg_check_modules(OpenGL glu)
IF(OpenGL_FOUND)
debug_message( " Found OpenGL...")
INCLUDE_DIRECTORIES(${OpenGL_INCLUDE_DIRS})
ADD_DEFINITIONS(${OpenGL_CFLAGS})
ADD_DEFINITIONS(${OpenGL_CFLAGS_OTHERS})
LINK_DIRECTORIES(${OpenGL_LIBRARY_DIRS})
IF(NOT(APPLE))
LINK_DIRECTORIES(${OpenGL_LIBRARY_DIRS}/mesa)
ENDIF()
FOREACH(OpenGL_LIB ${OpenGL_LIBRARIES} z)
SET(OpenGL_LIB1 "OpenGL_LIB1-NOTFOUND")
FIND_LIBRARY(OpenGL_LIB1 NAMES ${OpenGL_LIB} PATHS ${OpenGL_LIBRARY_DIRS} ${OpenGL_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(OpenGL_LIB1 NAMES ${OpenGL_LIB} PATHS ${OpenGL_LIBRARY_DIRS}/mesa ${OpenGL_LIBDIR}/mesa NO_DEFAULT_PATH)
FIND_LIBRARY(OpenGL_LIB1 NAMES ${OpenGL_LIB})
IF(OpenGL_LIB1)
debug_message( " [ OK ] Third party lib ${OpenGL_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenGL_LIB1})
ELSE(OpenGL_LIB1)
MESSAGE(WARNING " [FAILED] Third party lib ${OpenGL_LIB}")
ENDIF(OpenGL_LIB1)
ENDFOREACH(OpenGL_LIB)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyOpenGL)
ELSE(OpenGL_FOUND)
MESSAGE(WARNING " FAILED to find OpenGL...")
ENDIF(OpenGL_FOUND)
ENDIF(WIN32)
@@ -0,0 +1,43 @@
# ---------------------------------
# Finds X11 toolkit
#
# Sets X11_FOUND
# Sets X11_LIBRARIES
# Sets X11_LIBRARY_DIRS
# Sets X11_LDFLAGS
# Sets X11_LDFLAGS_OTHERS
# Sets X11_INCLUDE_DIRS
# Sets X11_CFLAGS
# Sets X11_CFLAGS_OTHERS
# ---------------------------------
IF(UNIX)
SET(OLD_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
IF(APPLE)
SET(CMAKE_PREFIX_PATH "/opt/X11")
ENDIF()
INCLUDE("FindPkgConfig")
pkg_check_modules(X11 x11)
IF(X11_FOUND)
debug_message( " Found X11... ${X11_INCLUDE_DIRS}")
INCLUDE_DIRECTORIES(${X11_INCLUDE_DIRS})
ADD_DEFINITIONS(${X11_CFLAGS})
ADD_DEFINITIONS(${X11_CFLAGS_OTHERS})
# LINK_DIRECTORIES(${X11_LIBRARY_DIRS})
FOREACH(X11_LIB ${X11_LIBRARIES})
SET(X11_LIB1 "X11_LIB1-NOTFOUND")
FIND_LIBRARY(X11_LIB1 NAMES ${X11_LIB} PATHS ${X11_LIBRARY_DIRS} ${X11_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(X11_LIB1 NAMES ${X11_LIB})
IF(X11_LIB1)
debug_message( " [ OK ] Third party lib ${X11_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${X11_LIB1})
ELSE(X11_LIB1)
MESSAGE(WARNING " [FAILED] Third party lib ${X11_LIB}")
ENDIF(X11_LIB1)
ENDFOREACH(X11_LIB)
ELSE(X11_FOUND)
MESSAGE(WARNING " FAILED to find X11...")
ENDIF(X11_FOUND)
SET(CMAKE_PREFIX_PATH ${OLD_CMAKE_PREFIX_PATH})
ENDIF(UNIX)
@@ -0,0 +1,325 @@
# Author Yann Renard / INRIA; Laurent Bonnet / Mensia Technologies
# Date 2008-10-15
# Modified 2013-06-26
#
# this CMake script iterates over several source documentation directories in
# order to compile it with doxygen. It has the ability to configure the
# doxyfile depending on some variables and to build documentation sources from
# computer generated templates (.dox-skeleton) and hand written documentation
# parts (.dox-part)
IF(MENSIA_BUILD_DOC)
# look for doxygen, if not present, no need to generate documentation
FIND_PROGRAM(doxygen_bin "doxygen" PATHS $ENV{OpenViBE_dependencies}/bin NO_DEFAULT_PATH)
FIND_PROGRAM(doxygen_bin "doxygen" PATHS $ENV{OpenViBE_dependencies}/bin "C:/Program Files/doxygen/bin" "C:/Program Files (x86)/doxygen/bin")
IF(doxygen_bin)
debug_message( " Found doxygen...")
#Set the project on which the documentation commands will be attached
SET(PROJECT_NAME_DOC ${PROJECT_NAME}-doc)
ADD_CUSTOM_TARGET(${PROJECT_NAME_DOC} ALL)
ADD_DEPENDENCIES(${PROJECT_NAME_DOC} ${PROJECT_NAME})
# intializes the variable that will be used in the doxyfile for input
# directories
# STRING(REPLACE "\\" "/" ov_doxy_input "\"$ENV{OpenViBE_base}/cmake-modules\"")
STRING(REPLACE "\\" "/" ov_doxy_input "\"${PROJECT_SOURCE_DIR}/src\"")
# intializes the variable that will contain the list of resource files to
# copy to the target directory
SET(RESOURCE_FILES "")
SET(scenario_files "")
# for each project, we look at its resources and store them in a list
# for each project, we look at partial documentation files (.dox-part) and
# parse them to get |ov[a-zA-Z0-9_]*_begin| or |ov[a-zA-Z0-9_]*_end|
# tokens. This tokens will later be included in the skeleton doxumentation
# files (.dox-skeleton)
SET(current_project_src "${PROJECT_SOURCE_DIR}/src")
# updates the doxyfile variable for input directories
SET(ov_doxy_input "${ov_doxy_input} \"${current_project_src}\"")
debug_message( " [ OK ] Candidate directory found ${current_project_src}")
# looks for resources and stores thm in a list
FILE(GLOB_RECURSE resource_files_tmp "${current_project_src}/*.png" "${current_project_src}/*.svg" "${current_project_src}/*.css" "${current_project_src}/*.php")
SET(RESOURCE_FILES ${RESOURCE_FILES} ${resource_files_tmp})
# looks for scenario files
FILE(GLOB_RECURSE scenario_files_tmp "${current_project_src}/*.xml")
SET(scenario_files ${scenario_files} ${scenario_files_tmp})
# looks for partial hand written documentation
FILE(GLOB_RECURSE doxs "${current_project_src}/*.dox-part")
FOREACH(dox ${doxs})
GET_FILENAME_COMPONENT(dox_filename ${dox} NAME_WE)
debug_message( " Documentation part found ${dox}")
SET(dox_tag_name NOTFOUND)
# iterates on each line of the file to look after begin/end tags
# "dox_tag_name" stores the name of the variable
# to use to configure the skeleton file. It is computed from the
# begin tag.
FILE(READ ${dox} dox_lines)
# replaces empty cariage returns with semi colons to be compliant
# with CMake lists. note the space before and after the semi
# colon, this is for CMake not to skip empty lines
STRING(REPLACE "\n" " ; " dox_lines " ${dox_lines} ")
FOREACH(dox_line ${dox_lines})
# this regex removes the spaces we added before the loop
STRING(REGEX REPLACE "^ (.*) $" "\\1" dox_line ${dox_line})
# we initialize several variables that will be used in
# this loop
SET(dox_line_processed FALSE)
SET(dox_tag_begin NOTFOUND)
SET(dox_tag_end NOTFOUND)
SET(dox_tag NOTFOUND)
# and look for a new tag in this line
STRING(REGEX MATCH "\\|[a-zA-Z0-9_]*\\|" dox_tag "${dox_line}")
IF(dox_tag)
# a tag is found, so we want to know if it is a
# OVP_DocBegin* or OVP_DocEnd* tag
STRING(REGEX MATCH "\\|OVP_DocBegin_[a-zA-Z0-9_]*\\|" dox_tag_begin "${dox_line}")
STRING(REGEX MATCH "\\|OVP_DocEnd_[a-zA-Z0-9_]*\\|" dox_tag_end "${dox_line}")
# in case we already have something in
# dox_tag_name, it means that begin tag has
# already been processed, so either we terminate with end
# tag, either we continue with come content to add in the
# variable
IF(dox_tag_name AND dox_tag_end)
# in case we find end tag, we just terminate cleaning
# the tag and what follows. We then terminate and
# create a new CMake variable with the content of this
# begin/end tagged things.
STRING(REGEX REPLACE ".*\\|OVP_DocEnd_([a-zA-Z0-9_]*)\\|.*" "\\1" dox_tag_name_check ${dox_line})
STRING(REGEX REPLACE "\\|OVP_DocEnd_([a-zA-Z0-9_]*)\\|.*" "" dox_line "${dox_line}")
debug_message( " - Completed tag pair |${dox_tag_name}|")
SET(dox_tag_name_value "${dox_tag_name_value}\n${dox_line}")
SET("Doc_${dox_tag_name}_Content" ${dox_tag_name_value})
SET(dox_tag_name NOTFOUND)
SET(dox_line_processed TRUE)
ENDIF(dox_tag_name AND dox_tag_end)
# in case dox_tag_name is empty, it means
# that begin tag has not yet been found, so we just look at it
# or skip to next line
IF(NOT dox_tag_name AND dox_tag_begin)
# in case we find begin tag, we just start saving the
# CMake variable name, and clean the tag and what
# comes before. We then intialize the content of the
# begin/end tagged thing with what comes after begin
# tag.
STRING(REGEX REPLACE ".*\\|OVP_DocBegin_([a-zA-Z0-9_]*)\\|.*" "\\1" dox_tag_name ${dox_line})
STRING(REGEX REPLACE ".*\\|OVP_DocBegin_([a-zA-Z0-9_]*)\\|" "" dox_line "${dox_line}")
SET(dox_tag_name_value "${dox_line}")
SET(dox_line_processed TRUE)
ENDIF(NOT dox_tag_name AND dox_tag_begin)
# in case dox tag is not OVP_DocBegin* or OVP_DocEnd*
# just print a warning and continue
IF(NOT dox_line_processed)
MESSAGE(STATUS " - Unexpected tag ${dox_tag} will be ignored")
ENDIF(NOT dox_line_processed)
ENDIF(dox_tag)
# in case this line was not processed, either because it does
# not have any tag, either because the tag was unexpected, we
# just append the whole line to the content of the current
# variable
IF(dox_tag_name AND NOT dox_line_processed)
# in case we don't find the end tag, just append this
# new line to the current content
SET(dox_tag_name_value "${dox_tag_name_value}\n${dox_line}")
ENDIF(dox_tag_name AND NOT dox_line_processed)
ENDFOREACH(dox_line)
ENDFOREACH(dox)
# now we have stored all the begin/end tagged things in variable, we just
# have to configure the skeleton configuration files with those variables.
# note that the skeleon files should be prepared to receive the CMake
# variables with @CMakeVariableName@ anywhere it is needed.
#
# in order to do so, we look after all the (.dox-skeleton) files and call
# the configure command to build the final documentation (.dox) file.
FILE(GLOB_RECURSE dox_skeletons "${PROJECT_SOURCE_DIR}/src/*.dox-skeleton")
FOREACH(dox_skeleton ${dox_skeletons})
GET_FILENAME_COMPONENT(dox_skeleton_filename ${dox_skeleton} NAME_WE)
GET_FILENAME_COMPONENT(dox_skeleton_path ${dox_skeleton} PATH)
CONFIGURE_FILE(
"${dox_skeleton}"
"${dox_skeleton_path}/${dox_skeleton_filename}.dox"
@ONLY)
debug_message( " [ OK ] Configured skeleton ${dox_skeleton}")
ENDFOREACH(dox_skeleton)
# now add post-build commands to copy resources in the target directory
IF(RESOURCE_FILES)
debug_message( " Found resources...")
FOREACH(current_resource ${RESOURCE_FILES})
GET_FILENAME_COMPONENT(current_resource_stripped ${current_resource} NAME)
debug_message( " [ OK ] Resource file ${current_resource}")
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME_DOC}
POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${current_resource}" "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/html/${current_resource_stripped}"
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${current_resource}" "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/latex/${current_resource_stripped}"
COMMENT " ---> [html/latex] Copying resource file ${current_resource_stripped}..."
VERBATIM)
ENDFOREACH(current_resource)
ENDIF(RESOURCE_FILES)
# now add post-build commands to copy scenario files in the target directory
IF(scenario_files)
debug_message( " Found scenario files...")
FOREACH(current_scenario ${scenario_files})
GET_FILENAME_COMPONENT(current_scenario_stripped ${current_scenario} NAME)
debug_message( " [ OK ] scenario file ${current_scenario}")
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME_DOC}
POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${current_scenario}" "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/html/scenarios/${current_scenario_stripped}"
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${current_scenario}" "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/latex/scenarios/${current_scenario_stripped}"
COMMENT " ---> [html/latex] Copying scenario file ${current_scenario_stripped}..."
VERBATIM)
ENDFOREACH(current_scenario)
# Saving all scenarios in a dedicated package
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME_DOC}
POST_BUILD
COMMAND ${CMAKE_COMMAND} ARGS -E tar cfz ${PROJECT_NAME_DOC}-scenarios.tar.gz scenarios
COMMAND ${CMAKE_COMMAND} ARGS -E copy ${PROJECT_NAME_DOC}-scenarios.tar.gz ${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/
COMMAND ${CMAKE_COMMAND} ARGS -E remove ${PROJECT_NAME_DOC}-scenarios.tar.gz
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/html"
COMMENT " ---> Packaging scenario files..."
VERBATIM)
ENDIF(scenario_files)
# the final doxyfile filename is generated, platform compliantly
SET(ov_doxy_final "${PROJECT_SOURCE_DIR}/src/doc/doxyfile")
IF(WIN32)
STRING(REPLACE "/" "\\" ov_doxy_final ${ov_doxy_final})
ENDIF(WIN32)
# these lines configure the variables used to configure the doxyfile
SET(ov_doxy_strip_from_path ${ov_doxy_input})
SET(ov_doxy_version ${PROJECT_VERSION})
SET(ov_doxy_output_directory ../doc/${PROJECT_NAME})
SET(ov_doxy_project_name ${PROJECT_NAME}-documentation)
SET(ov_doxy_header_project_name ${PROJECT_NAME}-documentation)
SET(ov_doxy_header_version ${PROJECT_VERSION})
SET(ov_doxy_header_branch ${PROJECT_BRANCH})
SET(ov_doxy_header_hash ${PROJECT_COMMITHASH})
IF(PROJECT_PRODUCT_NAME)
SET(ov_doxy_header_product_name ${PROJECT_PRODUCT_NAME})
ELSE(PROJECT_PRODUCT_NAME)
SET(ov_doxy_header_product_name ${PROJECT_NAME})
ENDIF(PROJECT_PRODUCT_NAME)
debug_message( " Looking for additional documentation supports...")
# configure doxyfile to generate a chm if available
FIND_PROGRAM(HHC_BIN "hhc" PATHS "C:\Program Files\HTML Help Workshop" "C:\Program Files (x86)\HTML Help Workshop" NO_DEFAULT_PATH)
IF(HHC_BIN)
debug_message( " [ OK ] Found HHC, Windows help (.chm) file will be produced.")
SET(ov_doxy_generate_chm YES)
SET(ov_doxy_hhc_location "\"${HHC_BIN}\"")
SET(ov_doxy_chm_file "\"..\\${PROJECT_NAME}-doc.chm\"")
ELSE(HHC_BIN)
MESSAGE(WARNING " [FAILED] HHC not found, Windows help (.chm) file will not be produced.")
SET(ov_doxy_generate_chm NO)
ENDIF(HHC_BIN)
# configure doxyfile to generate a latex->PDF file if available
FIND_PROGRAM(LATEX_BIN "latex")
IF(LATEX_BIN)
debug_message( " [ OK ] Found latex, a PDF file will be produced.")
SET(ov_doxy_generate_latex YES)
ELSE(LATEX_BIN)
MESSAGE(WARNING " [FAILED] Latex not found, PDF file will not be produced.")
SET(ov_doxy_generate_latex NO)
ENDIF(LATEX_BIN)
# then the doxyfile is configured
CONFIGURE_FILE(
src/doc/doxyfile-skeleton
${ov_doxy_final}
@ONLY)
# the latex header
CONFIGURE_FILE(
src/doc/header.tex-skeleton
${PROJECT_SOURCE_DIR}/src/doc/header.tex
@ONLY)
# and the html header
CONFIGURE_FILE(
src/doc/header.html-skeleton
${PROJECT_SOURCE_DIR}/src/doc/header.html
@ONLY)
# and a post-build command is added in order to run doxygen
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME_DOC}
POST_BUILD
# COMMAND ${CMAKE_COMMAND} ARGS -E make_directory ${PROJECT_NAME}/chm
COMMAND "${doxygen_bin}" -u "${ov_doxy_final}" && "${doxygen_bin}" "${ov_doxy_final}"
COMMAND ${CMAKE_COMMAND} ARGS -E tar cfz ${PROJECT_NAME}/${PROJECT_NAME_DOC}.tar.gz ${PROJECT_NAME}/html
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/doc"
COMMENT " ---> Running doxygen in [${PROJECT_SOURCE_DIR}/doc]..."
VERBATIM)
# make the pdf from latex output
# latex2pdf.log will be actually removed only if make.bat returns successfully
# therefore any error will be readable in the log file.
IF(LATEX_BIN)
IF(WIN32)
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME_DOC}
POST_BUILD
COMMAND "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/latex/make.bat > ../latex2pdf.log"
COMMAND ${CMAKE_COMMAND} ARGS -E copy refman.pdf ../${PROJECT_NAME_DOC}.pdf
COMMAND ${CMAKE_COMMAND} ARGS -E remove ../latex2pdf.log
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/latex"
COMMENT " ---> Latex 2 PDF..."
VERBATIM)
ELSE(WIN32)
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME_DOC}
POST_BUILD
COMMAND make -C "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/latex" > ../latex2pdf.log
COMMAND ${CMAKE_COMMAND} ARGS -E copy refman.pdf ../${PROJECT_NAME_DOC}.pdf
COMMAND ${CMAKE_COMMAND} ARGS -E remove ../latex2pdf.log
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}/latex"
COMMENT " ---> Latex 2 PDF..."
VERBATIM)
ENDIF(WIN32)
ENDIF(LATEX_BIN)
# CLEANUP
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME_DOC}
POST_BUILD
COMMAND ${CMAKE_COMMAND} ARGS -E remove_directory latex
COMMAND ${CMAKE_COMMAND} ARGS -E remove_directory html
COMMAND ${CMAKE_COMMAND} ARGS -E remove ../doxygen.log
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}"
COMMENT " ---> Cleaning up..."
VERBATIM)
ELSE(doxygen_bin)
MESSAGE(WARNING " FAILED to find doxygen...")
ENDIF(doxygen_bin)
ENDIF(MENSIA_BUILD_DOC)
@@ -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,134 @@
# Adds the current project to the global properties
FUNCTION(OV_ADD_THIS_TO_PROJECT_LIST)
debug_message( "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)
# skip_documentation is project-wide
IF(NOT(${SKIP_DOCUMENTATION}))
debug_message( "CUSTOM DOCUMENTATION ENABLED FOR ${doc_project_name}")
SET(HAS_CUSTOM_DOCUMENTATION_${doc_project_name} "1" PARENT_SCOPE)
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}")
debug_message( "Checking SKIP_${CURRENT_FOLDER_PREFIX}_${DIRNAMEUPPER} as branch var ${SKIP_THIS_FOLDER}")
IF(${SKIP_THIS_FOLDER})
debug_message( "Note: ${FULLPATH} has been skipped by setting SKIP_${CURRENT_FOLDER_PREFIX}_${DIRNAMEUPPER}")
ELSE()
debug_message( "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(NOT(${SKIP_DOC_OPENVIBE}))
IF(IS_DIRECTORY ${FULLPATH}/doc)
debug_message( "Documentation files found in ${FULLPATH}/doc")
INSTALL(DIRECTORY ${FULLPATH}/doc/ DESTINATION ${DIST_DOCTMP}/openvibe/box-algorithm-doc/dox-part/ FILES_MATCHING PATTERN "*.dox-part")
INSTALL(DIRECTORY ${FULLPATH}/doc/ DESTINATION ${DIST_DOCTMP}/openvibe FILES_MATCHING PATTERN "*.dox")
INSTALL(DIRECTORY ${FULLPATH}/doc/ DESTINATION ${DIST_DOCTMP}/openvibe 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()
debug_message( "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} )
CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/documentation/src/build-documentation.cmake-skeleton" "${DIST_DOCTMP}/build-documentation-${DIRNAME}.cmake" @ONLY)
FILE(APPEND "${DIST_DOCTMP}/build-documentation.cmd"
"cmake -P build-documentation-${DIRNAME}.cmake\n")
ENDIF()
ENDIF()
add_subdirectory(${FULLPATH})
ENDIF()
ENDIF()
ENDFOREACH(FULLPATH ${FILENAMES})
ENDFUNCTION(OV_ADD_PROJECTS)
@@ -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,78 @@
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 NOPROJECT)
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()
IF(NOT OV_INSTALL_LAUNCH_SCRIPT_NOPROJECT)
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)
ENDIF()
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)
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 boost/lib/${LIB_BOOST} PATHS ${LIST_DEPENDENCIES_PATH} 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 boost/lib/${LIB_BOOST_DEBUG} PATHS ${LIST_DEPENDENCIES_PATH} 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,41 @@
function(SET_PROJECT_VERSION)
find_file(OVSDK_DOTINSTALL NAMES .install PATHS ${OPENVIBE_SDK_PATH} NO_DEFAULT_PATH)
if(CMAKE_BUILD_TYPE)
string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER)
find_file(OVSDK_DOTINSTALL NAMES .install PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES openvibe-sdk-${CMAKE_BUILD_TYPE_LOWER} NO_DEFAULT_PATH)
else()
find_file(OVSDK_DOTINSTALL NAMES .install PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES openvibe-sdk-release openvibe-sdk-debug NO_DEFAULT_PATH)
endif()
file(STRINGS ${OVSDK_DOTINSTALL} ov_sdk_install_manifest)
foreach(NameAndValue ${ov_sdk_install_manifest})
string(STRIP NameAndValue ${NameAndValue})
string(REGEX MATCH "^[^=]+" Name ${NameAndValue})
string(REPLACE "${Name}=" "" Value ${NameAndValue})
if(${Name} STREQUAL "[Version]")
set(OV_SDK_VERSION_STRING "${Value}" PARENT_SCOPE)
endif()
endforeach()
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(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} 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(SET_PROJECT_VERSION)
@@ -0,0 +1,23 @@
# This file should be included "as is" inside a child scope of the main CMakeFiles.txt
# By default we do not use the launcher
SET(INSTALL_EXE OFF PARENT_SCOPE)
SET(SKIP_DOCUMENTATION ON PARENT_SCOPE)
SET(SKIP_DOC_OPENVIBE ON PARENT_SCOPE)
SET(SKIP_DOC_MODULES_EBML ON PARENT_SCOPE)
SET(SKIP_APPLICATIONS_DEMOS_VR-DEMOS ON PARENT_SCOPE)
SET(SKIP_APPLICATIONS_DEMOS_SSVEP-DEMO ON PARENT_SCOPE)
SET(SKIP_EXTERNALS_MENSIA_ADVANCED_SIGNAL_PROCESSING_TOOLS ON PARENT_SCOPE)
SET(MENSIA_ADVANCED_SIGNAL_PROCESSING_TOOLS_EXPERIMENTAL OFF)
SET(MENSIA_ADVANCED_VISUALIZATION_EXPERIMENTAL OFF)
# OPENVIBE
SET(SKIP_APPLICATIONS_PLATFORM_DESIGNER ON PARENT_SCOPE)
SET(SKIP_PLUGINS_PROCESSING_SIMPLE-VISUALISATION ON PARENT_SCOPE)
@@ -0,0 +1,120 @@
function(debug_message)
if(${Flag_VerboseOutput})
message(STATUS "${ARGV}")
endif()
endfunction()
# SET(OV_COMPILE_TESTS "true")
FUNCTION(SET_BUILD_PLATFORM)
IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
ADD_DEFINITIONS(-DTARGET_ARCHITECTURE_x64)
ELSEIF("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
ADD_DEFINITIONS(-DTARGET_ARCHITECTURE_i386)
ELSE()
ADD_DEFINITIONS(-DTARGET_ARCHITECTURE_Unknown)
ENDIF()
IF(WIN32)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
ADD_DEFINITIONS(-DTARGET_OS_Windows)
ADD_DEFINITIONS(-DTARGET_COMPILER_VisualStudio)
ELSEIF(APPLE)
ADD_DEFINITIONS(-fnon-call-exceptions)
ADD_DEFINITIONS(-DTARGET_OS_MacOS)
# ADD_DEFINITIONS(-DTARGET_ARCHITECTURE_x64)
ADD_DEFINITIONS(-DTARGET_COMPILER_LLVM)
ELSEIF(UNIX)
# ADD_DEFINITIONS(-fvisibility=hidden) # This flag should be present... man gcc
ADD_DEFINITIONS(-fnon-call-exceptions)
ADD_DEFINITIONS(-DTARGET_OS_Linux)
ADD_DEFINITIONS(-DTARGET_COMPILER_GCC)
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)
message(WARNING "No tags found, set version to 0.0.0")
set(PROJECT_VERSION "0.0.0")
set(PROJECT_BRANCH_STRING "unknown")
set(PROJECT_COMMITHASH_STRING "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,63 @@
#!/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_BIN" == "" ]; then
OV_PATH_BIN="@CMAKE_INSTALL_FULL_BINDIR@"
fi
if [ "$OV_PATH_LIB" == "" ]; then
OV_PATH_LIB="@CMAKE_INSTALL_FULL_LIBDIR@"
fi
if [ "$OV_PATH_DATA" == "" ]; then
OV_PATH_DATA="@CMAKE_INSTALL_FULL_DATADIR@"
fi
# if [ "$MENSIA_PATH_DATA" == "" ]; then
# MENSIA_PATH_DATA="@CMAKE_INSTALL_FULL_DATADIR@"
# 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,53 @@
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SETLOCAL EnableExtensions
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"
SET "MENSIA_PATH_DATA=%OV_PATH_ROOT%\share\mensia"
SET OV_PAUSE=@OV_PAUSE@
SET OV_RUN_IN_BG=
IF /i "%1"=="--no-pause" (
SET OV_PAUSE=
SHIFT
)
IF /i "%1"=="--pause" (
SET OV_PAUSE=PAUSE
SHIFT
)
IF /i "%1"=="--run-bg" (
REM Run in background, disable pause. The first start arg is the app title.
SET OV_RUN_IN_BG=START "@OV_CMD_EXECUTABLE@"
SET OV_PAUSE=
SHIFT
)
SET LUA_EXE_PATH=
FOR %%F IN (lua.exe) DO (
SET LUA_EXE_PATH_FULL=%%~$PATH:F
SET LUA_EXE_PATH=!LUA_EXE_PATH_FULL:lua.exe=!
)
SET PATH=%OV_PATH_LIB%;%PATH%
SET LUA_CPATH=%LUA_CPATH%;%LUA_EXE_PATH%\clibs\?.dll;%OV_PATH_ROOT%\bin\?.dll
SET LUA_PATH=%LUA_PATH%;%LUA_EXE_PATH%\lua\?.lua;%OV_PATH_ROOT%\bin\?.lua
REM get the arguments
REM this allows to build the full argument list (even when # > 9)
REM %* is not modifed by SHIFT
SET "args="
:getArgs
IF "%~1" NEQ "" (
SET args=%args% %1
SHIFT
goto :getArgs
)
%OV_RUN_IN_BG% "@OV_CMD_EXECUTABLE@" @OV_CMD_ARGS@ %args%
%OV_PAUSE%
@@ -0,0 +1,62 @@
#!/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"
#export MENSIA_PATH_DATA="$OV_PATH_ROOT/share/mensia"
# 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
LD_LIBRARY_PATH="$MATLAB_LIBPATH:$LD_LIBRARY_PATH"
fi
if [ "$OV_PATH_BIN" == "" ]; then
export OV_PATH_BIN="@CMAKE_INSTALL_FULL_BINDIR@"
fi
if [ "$OV_PATH_LIB" == "" ]; then
export OV_PATH_LIB="@CMAKE_INSTALL_FULL_LIBDIR@"
fi
if [ "$OV_PATH_DATA" == "" ]; then
export OV_PATH_DATA="@CMAKE_INSTALL_FULL_DATADIR@/openvibe"
fi
if [ "$MENSIA_PATH_DATA" == "" ]; then
export MENSIA_PATH_DATA="@CMAKE_INSTALL_FULL_DATADIR@/mensia"
fi
export LD_LIBRARY_PATH="$OV_PATH_LIB:@CMAKE_SOURCE_DIR@/dependencies/lib:$LD_LIBRARY_PATH"
export LC_ALL=C
export LUA_CPATH="$OV_PATH_LIB/lib?.so;`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,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