init
This commit is contained in:
+41
@@ -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()
|
||||
+18
@@ -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)
|
||||
+33
@@ -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)
|
||||
+32
@@ -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)
|
||||
|
||||
+34
@@ -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()
|
||||
|
||||
+63
@@ -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
|
||||
+53
@@ -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%
|
||||
+62
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user