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,65 @@
# ---------------------------------
# Finds mensia's advanced visualization toolkit
# Adds library to target
# Adds include path
# ---------------------------------
option(LINK_LIBADVVIZ "By default, link libadvviz, otherwise only use the includes" ON)
option(DYNAMIC_LINK_LIBADVVIZ "Dynamically link libadvviz" OFF)
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(DYNAMIC_LINK_LIBADVVIZ)
message(STATUS "Dynamic linking libadvviz")
set(LIBADVVIZ_LINKING "")
add_definitions(-DADVVIZ_Shared)
if(WIN32)
set(LIB_EXT lib)
elseif(APPLE)
set(LIB_PREFIX "lib")
set(LIB_EXT "dylib")
elseif(UNIX)
set(LIB_PREFIX "lib")
set(LIB_EXT "so")
endif()
else()
message(STATUS "Static linking libadvviz")
set(LIBADVVIZ_LINKING "-static")
add_definitions(-DADVVIZ_Static)
if(WIN32)
set(LIB_EXT lib)
elseif(UNIX)
set(LIB_PREFIX "lib")
set(LIB_EXT "a")
endif()
endif()
# set(PATH_LIBADVVIZ "PATH_LIBADVVIZ-NOTFOUND")
if(MULTI_BUILD)
# set(DESIGNER_SDK_PATH ${DESIGNER_SDK_PATH}/$<UPPER_CASE:$<CONFIG>>)
set(PATH_LIBADVVIZ ${DESIGNER_SDK_PATH}/include)
else()
find_path(PATH_LIBADVVIZ mensia/ PATHS ${DESIGNER_SDK_PATH}/include/ NO_DEFAULT_PATH)
endif()
if(PATH_LIBADVVIZ)
message(STATUS " Found libadvviz... ${PATH_LIBADVVIZ}")
include_directories(${PATH_LIBADVVIZ}/)
if(LINK_LIBADVVIZ)
# find_library(PATH libadvviz${LIBADVVIZ_LINKING} PATHS ${DESIGNER_SDK_PATH}/lib NO_DEFAULT_PATH)
# set(VISUALIZATION_TOOLKIT_LIBRARY ${DESIGNER_SDK_PATH}/lib/${LIB_PREFIX}libadvviz${LIBADVVIZ_LINKING}.${LIB_EXT})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PATH_LIBADVVIZ}/../lib/${LIB_PREFIX}mensia-advanced-visualization${LIBADVVIZ_LINKING}.${LIB_EXT})
endif()
add_definitions(-DTARGET_HAS_LibAdvancedVisualization)
else()
message(WARNING " FAILED to find libadvviz... [${PATH_LIBADVVIZ}]")
endif()
@@ -0,0 +1,22 @@
# ---------------------------------
# Finds module Geometry
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEModuleGeometry)
set(SRC_DIR ${OV_BASE_DIR}/modules/geometry/include)
FIND_PATH(PATH_OPENVIBE_MODULES_GEOMETRY geometry PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_GEOMETRY)
OV_PRINT(OV_PRINTED " Found OpenViBE module Geometry... ${PATH_OPENVIBE_MODULES_GEOMETRY}")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_GEOMETRY}/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-geometry)
ADD_DEFINITIONS(-DTARGET_HAS_Geometry)
ELSE(PATH_OPENVIBE_MODULES_GEOMETRY)
OV_PRINT(OV_PRINTED " FAILED to find OpenViBE module Geometry...")
ENDIF(PATH_OPENVIBE_MODULES_GEOMETRY)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEModuleGeometry "Yes")
@@ -0,0 +1,125 @@
# ---------------------------------
# Finds OpenViBE Designer 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_OVDESIGNER)
if(MULTI_BUILD)
set(SEEK_PATHS ${DESIGNER_SDK_PATH};${LIST_DEPENDENCIES_PATH})
unset(DESIGNER_SDK_PATH CACHE)
foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
# set(OPENVIBE_SDK_PATH ${OPENVIBE_SDK_PATH}/$<UPPER_CASE:$<CONFIG>>)
string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIGU )
unset(DESIGNER_SDK_PATH_TMP CACHE)
find_path(DESIGNER_SDK_PATH_TMP include/visualization-toolkit/ovviz_all.h PATHS ${SEEK_PATHS} PATH_SUFFIXES openvibe-designer-${OUTPUTCONFIG} ${OUTPUTCONFIG} NO_DEFAULT_PATH)
set(DESIGNER_SDK_PATH_${OUTPUTCONFIGU} ${DESIGNER_SDK_PATH_TMP})
if(DESIGNER_SDK_PATH_TMP)
message(STATUS "Found ${OUTPUTCONFIG} of designer at ${DESIGNER_SDK_PATH_TMP}")
string(CONCAT DESIGNER_SDK_PATH ${DESIGNER_SDK_PATH} $<$<CONFIG:${OUTPUTCONFIGU}>:${DESIGNER_SDK_PATH_TMP}>)
set(AT_LEAST_ONE_DESIGNER_BUILD TRUE)
endif()
endforeach()
if(NOT DEFINED AT_LEAST_ONE_DESIGNER_BUILD)
message(FATAL_ERROR "Did not find any valid build of OpenViBE Designer")
endif()
else() # Regular build
# find_path(DESIGNER_SDK_PATH bin PATHS ${DESIGNER_SDK_PATH} PATH_SUFFIXES designer NO_DEFAULT_PATH)
find_path(DESIGNER_SDK_PATH include/visualization-toolkit/ovviz_all.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES openvibe-designer-${CMAKE_BUILD_TYPE_LOWER} NO_DEFAULT_PATH)
if(NOT DESIGNER_SDK_PATH)
MESSAGE(ERROR "Could not find DESIGNER_SDK_PATH (value : ${OPENVIBE_SDK_PATH}). Please either specify it or put OpenViBE designer binaries into dependencies/openvibe-designer-{debug/release} folder")
endif()
string(REGEX REPLACE "\\\\+" "/" DESIGNER_SDK_PATH ${DESIGNER_SDK_PATH})
message(" Found Designer... [${DESIGNER_SDK_PATH}]")
endif()
set(TRIED_FIND_OVDESIGNER TRUE)
endif()
if(INSTALL_DESIGNER)
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 "${DESIGNER_SDK_PATH_${OUTPUTCONFIGU}}/*.cmd" "${DESIGNER_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()
set(OV_CMD_EXECUTABLE ${exe_name})
# 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 ${DESIGNER_SDK_PATH_${OUTPUTCONFIGU}}/include/ DESTINATION ${DIST_INCLUDEDIR} CONFIGURATIONS ${OUTPUTCONFIG})
install(DIRECTORY ${DESIGNER_SDK_PATH_${OUTPUTCONFIGU}}/bin/ DESTINATION ${DIST_BINDIR} CONFIGURATIONS ${OUTPUTCONFIG} USE_SOURCE_PERMISSIONS) # FILES_MATCHING PATTERN "openvibe-plugins*dll") or *so*
install(DIRECTORY ${DESIGNER_SDK_PATH_${OUTPUTCONFIGU}}/lib/ DESTINATION ${DIST_LIBDIR} CONFIGURATIONS ${OUTPUTCONFIG}) # FILES_MATCHING PATTERN "openvibe-plugins*dll")
install(DIRECTORY ${DESIGNER_SDK_PATH_${OUTPUTCONFIGU}}/etc/ DESTINATION ${DIST_SYSCONFDIR} CONFIGURATIONS ${OUTPUTCONFIG} OPTIONAL)
install(DIRECTORY ${DESIGNER_SDK_PATH_${OUTPUTCONFIGU}}/share/ DESTINATION ${DIST_DATADIR} CONFIGURATIONS ${OUTPUTCONFIG})
if(DESIGNER_SDK_PATH_${OUTPUTCONFIGU})
file(COPY "${DESIGNER_SDK_PATH_${OUTPUTCONFIGU}}/share/openvibe/applications/designer/designer.conf" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/designer.conf ${CMAKE_CURRENT_BINARY_DIR}/designer.conf_${OUTPUTCONFIG})
file(READ ${CMAKE_CURRENT_BINARY_DIR}/designer.conf_${OUTPUTCONFIG} FILE_CONTENT)
set(MATCH_EXPR "(ProjectVersion_Components *= *.\{[^\}]+)(.\}\n)")
string(REGEX REPLACE ${MATCH_EXPR} "\\1, \"openvibe-extras\":\"${OV_GLOBAL_VERSION_STRING}\"\\2" FILE_CONTENT ${FILE_CONTENT})
set(MATCH_EXPR "(Designer_WebBrowserHelpURLBase *= *\\$\{[^\}]+\}/documentation)/[\\.0-9a-zA-Z]+\n")
string(REGEX REPLACE ${MATCH_EXPR} "\\1/${OV_GLOBAL_VERSION_STRING}\n" FILE_CONTENT ${FILE_CONTENT})
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/designer.conf_${OUTPUTCONFIG} ${FILE_CONTENT})
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/designer.conf_${OUTPUTCONFIG} "Application_Name = OpenViBE Designer\nApplication_Version = ${OV_GLOBAL_VERSION_STRING}\nAcquisitionServer_HostName = localhost\n")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/designer.conf_${OUTPUTCONFIG}" DESTINATION "${DIST_DATADIR}/openvibe/applications/designer" RENAME designer.conf CONFIGURATIONS ${OUTPUTCONFIG})
endif()
endforeach()
else()
file(GLOB EXE_SCRIPT_LIST "${DESIGNER_SDK_PATH}/*.cmd" "${DESIGNER_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 ${DESIGNER_SDK_PATH}/include/ DESTINATION ${DIST_INCLUDEDIR})
install(DIRECTORY ${DESIGNER_SDK_PATH}/bin/ DESTINATION ${DIST_BINDIR} USE_SOURCE_PERMISSIONS) # FILES_MATCHING PATTERN "openvibe-plugins*dll") or *so*
install(DIRECTORY ${DESIGNER_SDK_PATH}/lib/ DESTINATION ${DIST_LIBDIR}) # FILES_MATCHING PATTERN "openvibe-plugins*dll")
install(DIRECTORY ${DESIGNER_SDK_PATH}/etc/ DESTINATION ${DIST_SYSCONFDIR} OPTIONAL)
install(DIRECTORY ${DESIGNER_SDK_PATH}/share/ DESTINATION ${DIST_DATADIR})
file(COPY "${DESIGNER_SDK_PATH}/share/openvibe/applications/designer/designer.conf" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
file(READ ${CMAKE_CURRENT_BINARY_DIR}/designer.conf FILE_CONTENT)
set(MATCH_EXPR "(ProjectVersion_Components *= *.\{[^\}]+)(.\}\n)")
string(REGEX REPLACE ${MATCH_EXPR} "\\1, \"openvibe-extras\":\"${OV_GLOBAL_VERSION_STRING}\"\\2" FILE_CONTENT ${FILE_CONTENT})
set(MATCH_EXPR "(Designer_WebBrowserHelpURLBase *= *\\$\{[^\}]+\}/documentation)/[\\.0-9a-zA-Z]+\n")
string(REGEX REPLACE ${MATCH_EXPR} "\\1/${OV_GLOBAL_VERSION_STRING}\n" FILE_CONTENT ${FILE_CONTENT})
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/designer.conf ${FILE_CONTENT})
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/designer.conf "Application_Name = OpenViBE Designer\nApplication_Version = ${OV_GLOBAL_VERSION_STRING}\nAcquisitionServer_HostName = localhost\n")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/designer.conf DESTINATION "${DIST_DATADIR}/openvibe/applications/designer")
endif()
endif()
@@ -0,0 +1,112 @@
# ---------------------------------
# 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(STATUS "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(${OPENVIBE_SDK_PATH} STREQUAL "OPENVIBE_SDK_PATH-NOTFOUND")
message(FATAL_ERROR " FAILED to find OpenViBE SDK [${OPENVIBE_SDK_PATH}]")
endif()
string(REGEX REPLACE "\\\\+" "/" OPENVIBE_SDK_PATH ${OPENVIBE_SDK_PATH})
message(STATUS " 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()
SET(OV_CMD_EXECUTABLE ${exe_name})
# 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} USE_SOURCE_PERMISSIONS) # 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} OPTIONAL)
install(DIRECTORY ${OPENVIBE_SDK_PATH_${OUTPUTCONFIGU}}/share/ DESTINATION ${DIST_DATADIR} CONFIGURATIONS ${OUTPUTCONFIG})
if(OPENVIBE_SDK_PATH_${OUTPUTCONFIGU})
file(COPY "${OPENVIBE_SDK_PATH_${OUTPUTCONFIGU}}/share/openvibe/kernel/openvibe.conf" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/openvibe.conf ${CMAKE_CURRENT_BINARY_DIR}/openvibe.conf_${OUTPUTCONFIG})
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/openvibe.conf_${OUTPUTCONFIG} "Application_Name = Player\nApplication_Version = ${OV_GLOBAL_VERSION_STRING}\nAcquisitionServer_HostName = localhost\n")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/openvibe.conf_${OUTPUTCONFIG} DESTINATION "${DIST_DATADIR}/openvibe/kernel" RENAME openvibe.conf CONFIGURATIONS ${OUTPUTCONFIG})
endif()
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} USE_SOURCE_PERMISSIONS) # 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} OPTIONAL)
install(DIRECTORY ${OPENVIBE_SDK_PATH}/share/ DESTINATION ${DIST_DATADIR})
file(COPY "${OPENVIBE_SDK_PATH}/share/openvibe/kernel/openvibe.conf" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/openvibe.conf "Application_Name = Player\nApplication_Version = ${OV_GLOBAL_VERSION_STRING}\nAcquisitionServer_HostName = localhost\n")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/openvibe.conf DESTINATION "${DIST_DATADIR}/openvibe/kernel")
endif()
endif()
@@ -0,0 +1,12 @@
# ---------------------------------
# Finds OpenViBE
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBE)
SET(INCLUDED_OV_SDK_COMPONENTS MAIN)
INCLUDE(AddOpenViBESDKComponents)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBE "Yes")
@@ -0,0 +1,13 @@
# ---------------------------------
# Finds OpenViBE common include files
# Adds dependency to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBECommon)
SET(INCLUDED_OV_SDK_COMPONENTS COMMON)
INCLUDE(AddOpenViBESDKComponents)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBECommon "Yes")
@@ -0,0 +1,19 @@
# ---------------------------------
# Finds OpenViBE contributions
# Only serves to set up a define for the preprocessor
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEContributions)
FIND_PATH(PATH_OPENVIBE_CONTRIBUTIONS common/contribAcquisitionServer.cmake PATHS ${OV_BASE_DIR}/contrib NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_CONTRIBUTIONS)
OV_PRINT(OV_PRINTED " Found openvibe-contributions...")
ADD_DEFINITIONS(-DTARGET_HAS_OpenViBEContributions)
ELSE(PATH_OPENVIBE_CONTRIBUTIONS)
OV_PRINT(OV_PRINTED " FAILED to find openvibe-contributions...")
ENDIF(PATH_OPENVIBE_CONTRIBUTIONS)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEContributions "Yes")
@@ -0,0 +1,13 @@
# ---------------------------------
# Finds module EBML
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEModuleEBML)
SET(INCLUDED_OV_SDK_COMPONENTS EBML)
INCLUDE(AddOpenViBESDKComponents)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEModuleEBML "Yes")
@@ -0,0 +1,13 @@
# ---------------------------------
# Finds module FS
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEModuleFS)
SET(INCLUDED_OV_SDK_COMPONENTS FS)
INCLUDE(AddOpenViBESDKComponents)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEModuleFS "Yes")
@@ -0,0 +1,13 @@
# ---------------------------------
# Finds module Messaging
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEModuleMessaging)
SET(INCLUDED_OV_SDK_COMPONENTS COMMUNICATION)
INCLUDE(AddOpenViBESDKComponents)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEModuleMessaging "Yes")
@@ -0,0 +1,13 @@
# ---------------------------------
# Finds module Socket
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEModuleSocket)
SET(INCLUDED_OV_SDK_COMPONENTS SOCKET)
INCLUDE(AddOpenViBESDKComponents)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEModuleSocket "Yes")
@@ -0,0 +1,13 @@
# ---------------------------------
# Finds module System
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEModuleSystem)
SET(INCLUDED_OV_SDK_COMPONENTS SYSTEM)
INCLUDE(AddOpenViBESDKComponents)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEModuleSystem "Yes")
@@ -0,0 +1,32 @@
# ---------------------------------
# Finds module TCPTagging
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEModuleTCPTagging)
OPTION(DYNAMIC_LINK_OPENVIBE_MODULE_TCPTAGGING "Dynamically link OpenViBE module TCPTagging" ON)
IF(DYNAMIC_LINK_OPENVIBE_MODULE_TCPTAGGING)
SET(OPENVIBE_MODULE_TCPTAGGING_LINKING "")
ELSE(DYNAMIC_LINK_OPENVIBE_MODULE_TCPTAGGING)
SET(OPENVIBE_MODULE_TCPTAGGING_LINKING "-static")
ENDIF(DYNAMIC_LINK_OPENVIBE_MODULE_TCPTAGGING)
set(SRC_DIR ${OV_BASE_DIR}/modules/tcptagging/include)
FIND_PATH(PATH_OPENVIBE_MODULES_TCPTAGGING tcptagging/defines.h PATHS ${SRC_DIR} NO_DEFAULT_PATH)
IF(PATH_OPENVIBE_MODULES_TCPTAGGING)
OV_PRINT(OV_PRINTED " Found OpenViBE module TCPTagging... ${PATH_OPENVIBE_MODULES_TCPTAGGING}")
INCLUDE_DIRECTORIES(${PATH_OPENVIBE_MODULES_TCPTAGGING}/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} openvibe-module-tcptagging${OPENVIBE_MODULE_TCPTAGGING_LINKING})
ADD_DEFINITIONS(-DTARGET_HAS_TCPTagging)
ELSE(PATH_OPENVIBE_MODULES_TCPTAGGING)
OV_PRINT(OV_PRINTED " FAILED to find OpenViBE module TCPTagging...")
ENDIF(PATH_OPENVIBE_MODULES_TCPTAGGING)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEModuleTCPTagging "Yes")
@@ -0,0 +1,13 @@
# ---------------------------------
# Finds module XML
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEModuleXML)
SET(INCLUDED_OV_SDK_COMPONENTS XML)
INCLUDE(AddOpenViBESDKComponents)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEModuleXML "Yes")
@@ -0,0 +1,13 @@
# ---------------------------------
# Finds openvibe-toolkit
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_OpenViBEToolkit)
SET(INCLUDED_OV_SDK_COMPONENTS TOOLKIT)
INCLUDE(AddOpenViBESDKComponents)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_OpenViBEToolkit "Yes")
@@ -0,0 +1,63 @@
# ---------------------------------
# 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(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(DYNAMIC_LINK_OPENVIBE_VISUALIZATION_TOOLKIT)
set(OPENVIBE_VISUALIZATION_TOOLKIT_LINKING "")
add_definitions(-DOVVIZ_Shared)
if(WIN32)
set(LIB_EXT lib)
elseif(APPLE)
set(LIB_PREFIX "lib")
set(LIB_EXT "dylib")
elseif(UNIX)
set(LIB_PREFIX "lib")
set(LIB_EXT "so")
endif()
else()
set(OPENVIBE_VISUALIZATION_TOOLKIT_LINKING "-static")
add_definitions(-DOVVIZ_Static)
if(WIN32)
set(LIB_EXT lib)
elseif(UNIX)
set(LIB_PREFIX "lib")
set(LIB_EXT "a")
endif()
endif()
# set(PATH_OPENVIBE_VISUALIZATION_TOOLKIT "PATH_OPENVIBE_VISUALIZATION_TOOLKIT-NOTFOUND")
if(MULTI_BUILD)
# set(DESIGNER_SDK_PATH ${DESIGNER_SDK_PATH}/$<UPPER_CASE:$<CONFIG>>)
set(PATH_OPENVIBE_VISUALIZATION_TOOLKIT ${DESIGNER_SDK_PATH}/include)
else()
find_path(PATH_OPENVIBE_VISUALIZATION_TOOLKIT visualization-toolkit/ovviz_all.h PATHS ${DESIGNER_SDK_PATH}/include/ NO_DEFAULT_PATH)
endif()
if(PATH_OPENVIBE_VISUALIZATION_TOOLKIT)
message(STATUS " Found openvibe-visualization-toolkit... ${PATH_OPENVIBE_VISUALIZATION_TOOLKIT}")
include_directories(${PATH_OPENVIBE_VISUALIZATION_TOOLKIT}/)
if(LINK_OPENVIBE_VISUALIZATION_TOOLKIT)
# find_library(VISUALIZATION_TOOLKIT_LIBRARY openvibe-visualization-toolkit${OPENVIBE_VISUALIZATION_TOOLKIT_LINKING} PATHS ${DESIGNER_SDK_PATH}/lib NO_DEFAULT_PATH)
set(VISUALIZATION_TOOLKIT_LIBRARY ${DESIGNER_SDK_PATH}/lib/${LIB_PREFIX}openvibe-visualization-toolkit${OPENVIBE_VISUALIZATION_TOOLKIT_LINKING}.${LIB_EXT})
target_link_libraries(${PROJECT_NAME} ${VISUALIZATION_TOOLKIT_LIBRARY})
endif()
add_definitions(-DTARGET_HAS_OpenViBEVisualizationToolkit)
else()
message(WARNING " FAILED to find openvibe-visualization-toolkit... [${PATH_OPENVIBE_VISUALIZATION_TOOLKIT}]")
endif()
@@ -0,0 +1,57 @@
# /*
# * FindThirdPartyActiCHampAPI.cmake
# *
# * Copyright (c) 2012, Mensia Technologies SA. All rights reserved.
# * -- Rights transferred to Inria, contract signed 21.11.2014
# *
# */
# ---------------------------------
# Finds ActiCHamp library
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyActiCHampAPI)
IF(WIN32)
FIND_PATH(PATH_ActiCHampAPI ActiChamp.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_brainproducts_actichamp)
IF(PATH_ActiCHampAPI)
OV_PRINT(OV_PRINTED " Found Brain Products actiCHamp API...")
INCLUDE_DIRECTORIES(${PATH_ActiCHampAPI})
IF("${PLATFORM_TARGET}" STREQUAL "x64")
SET(ACTICHAMP_LIBPREFIX "ActiChamp_x64")
ELSE()
SET(ACTICHAMP_LIBPREFIX "ActiChamp_x86")
ENDIF()
FIND_LIBRARY(LIB_ActiCHampAPI ${ACTICHAMP_LIBPREFIX}.lib PATHS ${PATH_ActiCHampAPI} )
IF(LIB_ActiCHampAPI)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_ActiCHampAPI}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_ActiCHampAPI} )
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] lib actiCHamp")
ENDIF()
FIND_FILE(FIRMWARE_ActiCHampAPI ActiChamp.bit PATHS ${PATH_ActiCHampAPI} )
IF(FIRMWARE_ActiCHampAPI)
OV_PRINT(OV_PRINTED " [ OK ] firmware ${FIRMWARE_ActiCHampAPI}")
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] firmware actiCHamp")
ENDIF()
# Copy the DLL file at install
INSTALL(PROGRAMS "${PATH_ActiCHampAPI}/${ACTICHAMP_LIBPREFIX}.dll" DESTINATION ${DIST_BINDIR})
# Copy the firmware file at install
INSTALL(PROGRAMS "${FIRMWARE_ActiCHampAPI}" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyActiCHampAPI)
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find Brain Products actiCHamp API (optional driver)")
ENDIF()
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyActiCHampAPI "Yes")
@@ -0,0 +1,43 @@
# ---------------------------------
# Finds BioSemi LabView API
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyBioSemiLabViewAPI)
IF(WIN32)
# note: care must be taken here that lib of wrong bitness is not picked
IF("${PLATFORM_TARGET}" STREQUAL "x64")
SET(PATH_BioSemiAPI "C:/Program Files/BioSemi/Developers_kit/C-code")
ELSE()
SET(PATH_BioSemiAPI "C:/Program Files (x86)/BioSemi/Developers_kit/C-code")
ENDIF()
FIND_FILE(LABVIEW_HEADER labview_dll.h
PATHS ${PATH_BioSemiAPI}
NO_SYSTEM_ENVIRONMENT_PATH
NO_DEFAULT_PATH)
IF(LABVIEW_HEADER)
OV_PRINT(OV_PRINTED " Found BioSemi LabView API...")
INCLUDE_DIRECTORIES(${PATH_BioSemiAPI})
FIND_LIBRARY(LIB_BioSemiAPI Labview_DLL PATHS ${PATH_BioSemiAPI} NO_SYSTEM_ENVIRONMENT_PATH NO_DEFAULT_PATH)
IF(LIB_BioSemiAPI)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_BioSemiAPI}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_BioSemiAPI} )
ELSE(LIB_BioSemiAPI)
OV_PRINT(OV_PRINTED " [FAILED] lib Labview_DLL")
ENDIF(LIB_BioSemiAPI)
# Copy the DLL file at install
INSTALL(PROGRAMS "${PATH_BioSemiAPI}/Labview_DLL.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyBioSemiAPI)
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find BioSemi LabView API (optional driver)")
ENDIF()
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBioSemiLabViewAPI "Yes")
@@ -0,0 +1,22 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost)
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)
OV_PRINT(OV_PRINTED " Found boost includes...")
INCLUDE_DIRECTORIES(${PATH_BOOST}/include)
ADD_DEFINITIONS(-DTARGET_HAS_Boost)
ELSE(PATH_BOOST)
OV_PRINT(OV_PRINTED " FAILED to find boost includes...")
ENDIF(PATH_BOOST)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost "Yes")
@@ -0,0 +1,54 @@
# ---------------------------------
# Finds third party boost chrono
# Adds a def that its present
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_Chrono)
IF(WIN32)
FIND_PATH(PATH_BOOST_CHRONO "include/boost/chrono.hpp" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES boost NO_DEFAULT_PATH)
IF(PATH_BOOST_CHRONO)
OV_PRINT(OV_PRINTED " Found boost chrono includes...")
OV_LINK_BOOST_LIB("chrono" ${OV_WIN32_BOOST_VERSION} )
IF(LIB_BOOST_PATH AND LIB_BOOST_DEBUG_PATH)
ADD_DEFINITIONS(-DTARGET_HAS_Boost_Chrono)
ENDIF(LIB_BOOST_PATH AND LIB_BOOST_DEBUG_PATH)
ENDIF(PATH_BOOST_CHRONO)
ENDIF(WIN32)
IF(UNIX)
FIND_PATH(PATH_BOOST_CHRONO "include/boost/chrono.hpp" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES boost NO_DEFAULT_PATH)
FIND_PATH(PATH_BOOST_CHRONO "include/boost/chrono.hpp" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES boost)
IF(PATH_BOOST_CHRONO)
OV_PRINT(OV_PRINTED " Found boost chrono includes...")
FIND_LIBRARY(LIB_Boost_Chrono NAMES "boost_chrono" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_Boost_Chrono NAMES "boost_chrono" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib)
IF(LIB_Boost_Chrono)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_Chrono}")
ADD_DEFINITIONS(-DTARGET_HAS_Boost_Chrono)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Chrono})
ELSE(LIB_Boost_Chrono)
OV_PRINT(OV_PRINTED " [FAILED] lib boost_chrono")
ENDIF(LIB_Boost_Chrono)
# Fedora / Ubuntu
FIND_LIBRARY(LIB_STANDARD_MODULE_RT rt)
IF(LIB_STANDARD_MODULE_RT)
OV_PRINT(OV_PRINTED " Found rt...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_RT})
ELSE(LIB_STANDARD_MODULE_RT)
OV_PRINT(OV_PRINTED " FAILED to find rt...")
ENDIF(LIB_STANDARD_MODULE_RT)
ELSE(PATH_BOOST_CHRONO)
OV_PRINT(OV_PRINTED " FAILED to find boost chrono includes...")
ENDIF(PATH_BOOST_CHRONO)
ENDIF(UNIX)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_Chrono "Yes")
@@ -0,0 +1,43 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_FileSystem)
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)
IF(LIB_Boost_Filesystem)
OV_PRINT(OV_PRINTED " Found boost FileSystem...")
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_Filesystem}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Filesystem} )
ELSE(LIB_Boost_Filesystem)
# Fedora 20 and Ubuntu 13.10,14.04 have no more multi-thread boost libs ( *-mt ) so try if there are non -mt libs to link
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)
OV_PRINT(OV_PRINTED " Found boost FileSystem...")
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_Filesystem}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Filesystem})
ELSE(LIB_Boost_Filesystem)
OV_PRINT(OV_PRINTED " FAILED to find boost FileSystem...")
OV_PRINT(OV_PRINTED " [FAILED] lib boost_filesystem-mt")
OV_PRINT(OV_PRINTED " [FAILED] lib boost_filesystem")
ENDIF(LIB_Boost_Filesystem)
ENDIF(LIB_Boost_Filesystem)
# For Fedora
INCLUDE("FindThirdPartyPThread")
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)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_FileSystem "Yes")
@@ -0,0 +1,31 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_Math)
INCLUDE("FindThirdPartyBoost")
IF(UNIX)
FIND_LIBRARY(LIB_Boost_Math NAMES "boost_math_c99" PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
# OV_PRINT(OV_PRINTED " looking in ${LIST_DEPENDENCIES_PATH}")
IF(LIB_Boost_Math)
OV_PRINT(OV_PRINTED " Found boost math...")
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_Math}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Math} )
ELSE(LIB_Boost_Math)
OV_PRINT(OV_PRINTED " FAILED to find boost math...")
OV_PRINT(OV_PRINTED " [FAILED] lib libboost_math_c99")
ENDIF(LIB_Boost_Math)
ENDIF(UNIX)
IF(WIN32)
IF(PATH_BOOST)
OV_LINK_BOOST_LIB("math_c99" ${OV_WIN32_BOOST_VERSION} )
ENDIF(PATH_BOOST)
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_Math "Yes")
@@ -0,0 +1,37 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_Regex)
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)
IF(LIB_Boost_Regex)
OV_PRINT(OV_PRINTED " Found Boost regex...")
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_Regex}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Regex} )
ELSE(LIB_Boost_Regex)
# Fedora 20 and Ubuntu 13.10,14.04 have no more multi-thread boost libs ( *-mt ) so try if there are non -mt libs to link
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)
OV_PRINT(OV_PRINTED " Found Boost regex...")
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_Regex}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Regex})
ELSE(LIB_Boost_Regex)
OV_PRINT(OV_PRINTED " [FAILED] lib boost_regex-mt")
OV_PRINT(OV_PRINTED " [FAILED] lib boost_regex")
ENDIF(LIB_Boost_Regex)
ENDIF(LIB_Boost_Regex)
ENDIF(UNIX)
IF(WIN32)
OV_LINK_BOOST_LIB("regex" ${OV_WIN32_BOOST_VERSION})
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_Regex "Yes")
@@ -0,0 +1,35 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_System)
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)
IF(LIB_Boost_System)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_System}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_System} )
ELSE(LIB_Boost_System)
# Fedora 20 and Ubuntu 13.10,14.04 have no more multi-thread boost libs ( *-mt ) so try if there are non -mt libs to link
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)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_System}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_System})
ELSE(LIB_Boost_System)
OV_PRINT(OV_PRINTED " [FAILED] lib boost_system-mt")
OV_PRINT(OV_PRINTED " [FAILED] lib boost_system")
ENDIF(LIB_Boost_System)
ENDIF(LIB_Boost_System)
ENDIF(UNIX)
IF(WIN32)
OV_LINK_BOOST_LIB("system" ${OV_WIN32_BOOST_VERSION})
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_System "Yes")
@@ -0,0 +1,52 @@
# ---------------------------------
# Finds third party boost
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_Thread)
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)
IF(LIB_Boost_Thread)
OV_PRINT(OV_PRINTED " Found boost thread...")
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_Thread}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Thread} )
ELSE(LIB_Boost_Thread)
# Fedora 20 and Ubuntu 13.10,14.04 have no more multi-thread boost libs ( *-mt ) so try if there are non -mt libs to link
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)
OV_PRINT(OV_PRINTED " Found boost thread...")
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_Boost_Thread}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_Boost_Thread})
ELSE(LIB_Boost_Thread)
OV_PRINT(OV_PRINTED " FAILED to find boost thread...")
OV_PRINT(OV_PRINTED " [FAILED] lib boost_thread-mt")
OV_PRINT(OV_PRINTED " [FAILED] lib boost_thread")
ENDIF(LIB_Boost_Thread)
ENDIF(LIB_Boost_Thread)
# For Fedora
INCLUDE("FindThirdPartyPThread")
# For Ubuntu 13.04 (interprocess/ipc/message_queue.hpp in ovasCPluginExternalStimulations.cpp caused dep)
FIND_LIBRARY(LIB_STANDARD_MODULE_RT rt)
IF(LIB_STANDARD_MODULE_RT)
OV_PRINT(OV_PRINTED " Found rt...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_RT})
ELSE(LIB_STANDARD_MODULE_RT)
OV_PRINT(OV_PRINTED " FAILED to find rt...")
ENDIF(LIB_STANDARD_MODULE_RT)
ENDIF(UNIX)
IF(WIN32)
OV_LINK_BOOST_LIB("thread" ${OV_WIN32_BOOST_VERSION})
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_Thread "Yes")
@@ -0,0 +1,49 @@
# ---------------------------------
# Finds BrainmasterCodeMakerAPI
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyBrainmasterCodeMakerAPI)
IF(WIN32)
IF("${PLATFORM_TARGET}" STREQUAL "x64")
OV_PRINT(OV_PRINTED " SKIPPED BrainMaster Discovery & Atlantis not yet supported on 64bit build...")
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBrainmasterCodeMakerAPI "Yes")
RETURN()
ENDIF()
# note that ampersands in paths below passed through cmake mess up Visual Studio IDE. If you get this problem, rename the dll folder under Program Files/
FIND_PATH(PATH_BrainmasterCodeMakerAPI CMKRDLLU.H PATHS
"C:/Program Files/Atlantis and Discovery SW DLL 1-11-12"
"C:/Program Files (x86)/Atlantis and Discovery SW DLL 1-11-12"
"C:/Program Files/Atlantis & Discovery SW DLL 1-11-12"
"C:/Program Files (x86)/Atlantis & Discovery SW DLL 1-11-12"
${LIST_DEPENDENCIES_PATH})
IF(PATH_BrainmasterCodeMakerAPI)
OV_PRINT(OV_PRINTED " Found Brainmaster Code Maker API...")
INCLUDE_DIRECTORIES(${PATH_BrainmasterCodeMakerAPI})
FOREACH(LIB_BrainmasterCodeMakerAPI bmrcm.lib ovbmrcm.lib)
SET(LIB_BrainmasterCodeMakerAPI1 "LIB_BrainmasterCodeMakerAPI1-NOTFOUND")
FIND_LIBRARY(LIB_BrainmasterCodeMakerAPI1 NAMES ${LIB_BrainmasterCodeMakerAPI} PATHS ${PATH_BrainmasterCodeMakerAPI} NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_BrainmasterCodeMakerAPI1 NAMES ${LIB_BrainmasterCodeMakerAPI})
IF(LIB_BrainmasterCodeMakerAPI1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${LIB_BrainmasterCodeMakerAPI1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_BrainmasterCodeMakerAPI1})
ELSE(LIB_BrainmasterCodeMakerAPI1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${LIB_BrainmasterCodeMakerAPI}")
ENDIF(LIB_BrainmasterCodeMakerAPI1)
ENDFOREACH(LIB_BrainmasterCodeMakerAPI)
# Copy the DLL file at install
INSTALL(PROGRAMS "${PATH_BrainmasterCodeMakerAPI}/bmrcm.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyBrainmasterCodeMakerAPI)
ELSE(PATH_BrainmasterCodeMakerAPI)
OV_PRINT(OV_PRINTED " FAILED to find Brainmaster Code Maker API (optional driver)")
ENDIF(PATH_BrainmasterCodeMakerAPI)
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBrainmasterCodeMakerAPI "Yes")
@@ -0,0 +1,94 @@
# ---------------------------------
# Finds CEGUI toolkit
#
# Sets CEGUI_FOUND
# Sets CEGUI_LIBRARIES
# Sets CEGUI_LIBRARY_DIRS
# Sets CEGUI_LDFLAGS
# Sets CEGUI_LDFLAGS_OTHERS
# Sets CEGUI_INCLUDE_DIRS
# Sets CEGUI_CFLAGS
# Sets CEGUI_CFLAGS_OTHERS
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyCEGUI)
IF(OV_DISABLE_OGRE)
OV_PRINT(OV_PRINTED " SKIPPED Ogre3D/OIS (CEGUI), disabled, no 3D ...")
RETURN()
ENDIF(OV_DISABLE_OGRE)
IF(WIN32)
FIND_PATH(PATH_CEGUI cegui/include/CEGUI.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES cegui)
IF(PATH_CEGUI)
SET(CEGUI_FOUND TRUE)
SET(OgreCEGUIRenderer_FOUND TRUE)
SET(CEGUI_INCLUDE_DIRS ${PATH_CEGUI}/cegui/include)
STRING(REGEX MATCH "vc120.*" MSVC_VER120 ${MSVC_SERVICE_PACK})
IF(MSVC_VER120)
SET(CEGUI_LIBRARIES_DEBUG CEGUIBase-0_d CEGUIOgreRenderer-0_d)
SET(CEGUI_LIBRARIES_RELEASE CEGUIBase-0 CEGUIOgreRenderer-0)
ELSE(MSVC_VER120)
SET(CEGUI_LIBRARIES_DEBUG CEGUIBase_d CEGUIOgreRenderer_d)
SET(CEGUI_LIBRARIES_RELEASE CEGUIBase CEGUIOgreRenderer)
ENDIF(MSVC_VER120)
SET(CEGUI_LIBRARY_DIRS ${PATH_CEGUI}/lib)
ENDIF(PATH_CEGUI)
ENDIF(WIN32)
IF(UNIX)
# Assumes FindThirdPartyCEGUI_Check.cmake has been run
ENDIF(UNIX)
IF(CEGUI_FOUND AND OgreCEGUIRenderer_FOUND)
OV_PRINT(OV_PRINTED " Found CEGUI/OgreCEGUIRenderer...")
INCLUDE_DIRECTORIES(${CEGUI_INCLUDE_DIRS} ${OgreCEGUIRenderer_INCLUDE_DIRS})
ADD_DEFINITIONS(${CEGUI_CFLAGS} ${OgreCEGUIRenderer_CFLAGS})
ADD_DEFINITIONS(${CEGUI_CFLAGS_OTHERS} ${OgreCEGUIRenderer_CFLAGS_OTHERS})
# LINK_DIRECTORIES(${CEGUI_LIBRARY_DIRS} ${OgreCEGUIRenderer_LIBRARY_DIRS})
IF(UNIX)
FOREACH(CEGUI_LIB ${CEGUI_LIBRARIES} ${OgreCEGUIRenderer_LIBRARIES})
SET(CEGUI_LIB1 "CEGUI_LIB1-NOTFOUND")
FIND_LIBRARY(CEGUI_LIB1 NAMES ${CEGUI_LIB} PATHS ${CEGUI_LIBRARY_DIRS} ${CEGUI_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(CEGUI_LIB1 NAMES ${CEGUI_LIB})
IF(CEGUI_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${CEGUI_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${CEGUI_LIB1})
ELSE(CEGUI_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${CEGUI_LIB}")
ENDIF(CEGUI_LIB1)
ENDFOREACH(CEGUI_LIB)
ENDIF(UNIX)
IF(WIN32)
FOREACH(CEGUI_LIB ${CEGUI_LIBRARIES_DEBUG})
SET(CEGUI_LIB1 "CEGUI_LIB1-NOTFOUND")
FIND_LIBRARY(CEGUI_LIB1 NAMES ${CEGUI_LIB} PATHS ${CEGUI_LIBRARY_DIRS} ${CEGUI_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(CEGUI_LIB1 NAMES ${CEGUI_LIB})
IF(CEGUI_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${CEGUI_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${CEGUI_LIB1})
ELSE(CEGUI_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${CEGUI_LIB}")
ENDIF(CEGUI_LIB1)
ENDFOREACH(CEGUI_LIB)
FOREACH(CEGUI_LIB ${CEGUI_LIBRARIES_RELEASE})
SET(CEGUI_LIB1 "CEGUI_LIB1-NOTFOUND")
FIND_LIBRARY(CEGUI_LIB1 NAMES ${CEGUI_LIB} PATHS ${CEGUI_LIBRARY_DIRS} ${CEGUI_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(CEGUI_LIB1 NAMES ${CEGUI_LIB})
IF(CEGUI_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${CEGUI_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${CEGUI_LIB1})
ELSE(CEGUI_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${CEGUI_LIB}")
ENDIF(CEGUI_LIB1)
ENDFOREACH(CEGUI_LIB)
ENDIF(WIN32)
ELSE(CEGUI_FOUND AND OgreCEGUIRenderer_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find CEGUI/OgreCEGUIRenderer...")
ENDIF(CEGUI_FOUND AND OgreCEGUIRenderer_FOUND)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyCEGUI "Yes")
@@ -0,0 +1,57 @@
# ---------------------------------
# Finds CEGUI & Ogre toolkit
#
# Should only be used to check the presence, include later
#
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyCEGUI_Check)
IF(OV_DISABLE_OGRE)
OV_PRINT(OV_PRINTED " SKIPPED Ogre3D/OIS (CEGUI), disabled, no 3D ...")
RETURN()
ENDIF(OV_DISABLE_OGRE)
OV_PRINT(OV_PRINTED " Checking for CEGUI ...")
IF(WIN32)
FIND_PATH(PATH_CEGUI cegui/include/CEGUI.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES cegui)
IF(PATH_CEGUI)
SET(CEGUI_FOUND TRUE)
ELSE()
OV_PRINT(OV_PRINTED " CEGUI headers not found ...")
ENDIF()
FIND_PATH(PATH_Ogre3D include/OGRE/Ogre.h PATHS ${LIST_DEPENDENCIES_PATH} $ENV{OGRE_HOME} PATH_SUFFIXES . ogre)
IF(PATH_Ogre3D)
SET(OgreCEGUIRenderer_FOUND TRUE)
ELSE()
OV_PRINT(OV_PRINTED " Ogre materials not found ...")
ENDIF()
ENDIF(WIN32)
IF(UNIX)
INCLUDE("FindPkgConfig")
SET(CEGUI_FOUND "-NOTFOUND")
pkg_check_modules(CEGUI QUIET CEGUI)
IF(NOT CEGUI_FOUND)
# we have this mess as the cegui filenames & paths are different on Fedora 21 at least,
# and the include_dirs doesn't contain the CEGUI/ part ... I'd put that to the .h/.cpp IF the same path
# convention was the case on all platforms... but it is not
pkg_check_modules(CEGUI QUIET CEGUI-0)
SET(CEGUI_INCLUDE_DIRS "${CEGUI_INCLUDE_DIRS}/CEGUI")
ENDIF(NOT CEGUI_FOUND)
SET(OgreCEGUIRenderer_FOUND "-NOTFOUND")
pkg_check_modules(OgreCEGUIRenderer QUIET CEGUI-OGRE)
IF(NOT OgreCEGUIRenderer_FOUND)
pkg_check_modules(OgreCEGUIRenderer QUIET CEGUI-0-OGRE)
ENDIF(NOT OgreCEGUIRenderer_FOUND)
ENDIF(UNIX)
# IF(CEGUI_FOUND AND OgreCEGUIRenderer_FOUND)
# OV_PRINT(OV_PRINTED " Found CEGUI/OgreCEGUIRenderer...")
# ELSE(CEGUI_FOUND AND OgreCEGUIRenderer_FOUND)
# OV_PRINT(OV_PRINTED " FAILED to find CEGUI/OgreCEGUIRenderer...")
# ENDIF(CEGUI_FOUND AND OgreCEGUIRenderer_FOUND)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyCEGUI_Check "Yes")
@@ -0,0 +1,43 @@
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyEemagineEEGO)
# ---------------------------------
# Finds the Eemagine EEGO API & library
# Adds library to target
# Adds include path
# ---------------------------------
if (WIN32)
FIND_PATH(PATH_EEGOAPI amplifier.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_eemagine_eego/eemagine/sdk/)
else()
FIND_PATH(PATH_EEGOAPI amplifier.h PATHS /usr/include PATH_SUFFIXES eemagine/sdk/)
endif(WIN32)
IF(NOT PATH_EEGOAPI)
OV_PRINT(OV_PRINTED " FAILED to find EEGO API (optional driver) - cmake looked in '${LIST_DEPENDENCIES_PATH}', skipping EEGO.")
RETURN()
ENDIF(NOT PATH_EEGOAPI)
OV_PRINT(OV_PRINTED " Found EEGO API in ${PATH_EEGOAPI}...")
if (WIN32)
FIND_FILE(LIB_EEGOAPI NAMES eego-SDK.dll PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_eemagine_eego/eemagine/bin/)
else()
find_library(LIB_EEGOAPI NAMES eego-SDK)
target_link_libraries(${PROJECT_NAME} -ldl)
OV_PRINT(OV_PRINTED " LIB_EEGOAPI : ${LIB_EEGOAPI}")
endif(WIN32)
IF(NOT LIB_EEGOAPI)
OV_PRINT(OV_PRINTED " [FAILED] EEGO lib not found under '${LIST_DEPENDENCIES_PATH}', skipping EEGO.")
RETURN()
ENDIF(NOT LIB_EEGOAPI)
INCLUDE_DIRECTORIES("${PATH_EEGOAPI}/../../")
INSTALL(PROGRAMS "${LIB_EEGOAPI}" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEEGOAPI)
ADD_DEFINITIONS(-DEEGO_SDK_BIND_DYNAMIC)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_EEGOAPI}")
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyEemagineEEGO "Yes")
@@ -0,0 +1,56 @@
# ---------------------------------
# Finds Eigen headers
#
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyEigen)
IF(WIN32)
FIND_PATH(PATH_EIGEN Eigen/Eigen PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES eigen)
IF(PATH_EIGEN)
SET(EIGEN_FOUND TRUE)
SET(EIGEN_INCLUDE_DIRS ${PATH_EIGEN})
SET(EIGEN_CFLAGS "")
#SET(EIGEN_LIBRARIES_RELEASE EIGEN)
#SET(EIGEN_LIBRARIES_DEBUG EIGENd)
#SET(EIGEN_LIBRARY_DIRS ${PATH_EIGEN}/lib )
ENDIF(PATH_EIGEN)
ENDIF(WIN32)
IF(UNIX)
# @FIXME remove that when an Ubuntu package will be available
# Find in priority local library for eigen even if linux package has been installed
# reason: package on distri Ubuntu 16.04 is still bugged (eigen 3.2.92)
INCLUDE("FindPkgConfig")
UNSET(PATH_EIGEN_LOCAL CACHE)
FIND_PATH(PATH_EIGEN_LOCAL eigen3 PATHS "/usr/local/include" NO_DEFAULT_PATH)
SET(EIGEN_FOUND FALSE)
IF (PATH_EIGEN_LOCAL)
SET(EIGEN_INCLUDE_DIRS "${PATH_EIGEN_LOCAL}/eigen3")
SET(EIGEN_CFLAGS "-I${EIGEN_INCLUDE_DIRS}")
SET(EIGEN_FOUND TRUE)
ELSE()
pkg_check_modules(EIGEN eigen3)
ENDIF()
# @FIXME uncomment that when an Ubuntu package will be available
#SET(EIGEN_FOUND FALSE)
#INCLUDE("FindPkgConfig")
#pkg_check_modules(EIGEN eigen3)
ENDIF(UNIX)
IF(EIGEN_FOUND)
OV_PRINT(OV_PRINTED " Found eigen3...")
INCLUDE_DIRECTORIES(${EIGEN_INCLUDE_DIRS})
ADD_DEFINITIONS(${EIGEN_CFLAGS})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEIGEN)
ELSE(EIGEN_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find eigen3...")
ENDIF(EIGEN_FOUND)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyEigen "Yes")
@@ -0,0 +1,94 @@
# ---------------------------------
# Finds Emotiv SDK
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyEmotivAPI)
IF(WIN32)
IF("${PLATFORM_TARGET}" STREQUAL "x64")
OV_PRINT(OV_PRINTED " SKIPPED Emotiv EPOC not yet supported on 64bit builds...")
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyEmotivAPI "Yes")
RETURN()
ENDIF()
ENDIF()
# Put the path to the Emotiv SDK followed by *
FILE(GLOB PATH_Candidates
"C:/Program Files/Emotiv Development Kit*"
"C:/Program Files/Emotiv Research Edition*"
"C:/Program Files/Emotiv SDK Premium Edition*"
"C:/Program Files (x86)/Emotiv Development Kit*"
"C:/Program Files (x86)/Emotiv Research Edition*"
"C:/Program Files (x86)/Emotiv SDK Premium Edition*"
"/home/{username}/EmotivResearch_2.0.0.20*"
#Put here the path to the directory where you installed the emotiv sdk
)
FOREACH(Candidate_folder ${PATH_Candidates})
# OV_PRINT(OV_PRINTED "Found path ${PATH_Candidate}")
#Version 1 of sdk
LIST(APPEND PATH_Candidates ${Candidate_folder}/doc/examples/include)
#Version 2 of sdk
LIST(APPEND PATH_Candidates ${Candidate_folder}/doc/examples_Qt/example5)
#Version 3 of sdk
LIST(APPEND PATH_Candidates ${Candidate_folder}/EDK/Header\ files/)
ENDFOREACH(Candidate_folder ${PATH_Candidates})
SET(PATH_EmotivAPI "-NOTFOUND")
FIND_PATH(PATH_EmotivAPI1 edk.h PATHS ${PATH_Candidates} ${LIST_DEPENDENCIES_PATH})
IF(PATH_EmotivAPI1)
OV_PRINT(OV_PRINTED " Found Emotiv Research API 1.x ...")
SET(OV_EMOTIV_VERSION "research-1")
SET(PATH_EmotivAPI ${PATH_EmotivAPI1})
SET(OV_EMOTIV_PATHS "${PATH_EmotivAPI}/../lib" "${PATH_EmotivAPI}/../../lib" "${PATH_EmotivAPI}/../../../lib")
ENDIF(PATH_EmotivAPI1)
FIND_PATH(PATH_EmotivAPI2 IEdk.h PATHS ${PATH_Candidates} ${LIST_DEPENDENCIES_PATH})
IF(PATH_EmotivAPI2)
OV_PRINT(OV_PRINTED " Found Emotiv API 3.x ...")
SET(OV_EMOTIV_VERSION "community")
SET(PATH_EmotivAPI ${PATH_EmotivAPI2})
SET(OV_EMOTIV_PATHS "${PATH_EmotivAPI}/../x86" "${PATH_EmotivAPI}/../../x86" "${PATH_EmotivAPI}/../../../x86")
ENDIF(PATH_EmotivAPI2)
FIND_PATH(PATH_EmotivAPI3 IEegData.h PATHS ${PATH_Candidates} ${LIST_DEPENDENCIES_PATH})
IF(PATH_EmotivAPI3)
OV_PRINT(OV_PRINTED " Found Emotiv Research API 3.x ...")
SET(OV_EMOTIV_VERSION "research-3")
SET(PATH_EmotivAPI ${PATH_EmotivAPI3})
SET(OV_EMOTIV_PATHS "${PATH_EmotivAPI}/../x86" "${PATH_EmotivAPI}/../../x86" "${PATH_EmotivAPI}/../../../x86")
ENDIF(PATH_EmotivAPI3)
IF(PATH_EmotivAPI)
FIND_LIBRARY(LIB_EmotivAPI edk PATHS ${OV_EMOTIV_PATHS})
IF(LIB_EmotivAPI)
OV_PRINT(OV_PRINTED " [ OK ] api ${PATH_EmotivAPI}")
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_EmotivAPI}")
INCLUDE_DIRECTORIES(${PATH_EmotivAPI})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_EmotivAPI} )
IF(WIN32)
# To delay load EDK.dll and redistribute binary
TARGET_LINK_LIBRARIES(${PROJECT_NAME} Delayimp.lib )
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DELAYLOAD:edk.dll /DELAY:UNLOAD")
ENDIF(WIN32)
IF(${OV_EMOTIV_VERSION} STREQUAL "community")
# This doesn't work by itself yet...
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEmotivCommunityAPI)
ELSEIF(${OV_EMOTIV_VERSION} STREQUAL "research-1")
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEmotivAPI)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEmotivResearchAPI1x)
ELSEIF(${OV_EMOTIV_VERSION} STREQUAL "research-3")
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEmotivAPI)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEmotivResearchAPI3x)
ENDIF(${OV_EMOTIV_VERSION} STREQUAL "community")
ELSE(LIB_EmotivAPI)
OV_PRINT(OV_PRINTED " [FAILED] lib Emotiv edk.lib")
ENDIF(LIB_EmotivAPI)
ELSE(PATH_EmotivAPI)
OV_PRINT(OV_PRINTED " FAILED to find Emotiv API (optional driver)")
ENDIF(PATH_EmotivAPI)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyEmotivAPI "Yes")
@@ -0,0 +1,78 @@
# ---------------------------------
# Finds FFTW3
#
# Sets define if the lib is found, adds include paths, libs
#
# ---------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyFFTW3)
# On windows, we take the itpp one.
IF(WIN32)
FIND_PATH(PATH_FFTW3 include/fftw3.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES itpp)
IF(PATH_FFTW3)
SET(FFTW3_FOUND TRUE)
# Of course the name of the library is this or that, depending on the circumstances ...
IF("${PLATFORM_TARGET}" STREQUAL "x64")
FIND_LIBRARY(FFTW3_TMP NAMES libfftw3-3_win64 PATHS ${PATH_FFTW3}/lib NO_DEFAULT_PATH)
IF(FFTW3_TMP)
SET(FFTW3_LIBRARIES libfftw3-3_win64)
ELSE(FFTW3_TMP)
SET(FFTW3_LIBRARIES libfftw3-3)
ENDIF(FFTW3_TMP)
ELSE()
FIND_LIBRARY(FFTW3_TMP NAMES libfftw3-3_win32 PATHS ${PATH_FFTW3}/lib NO_DEFAULT_PATH)
IF(FFTW3_TMP)
SET(FFTW3_LIBRARIES libfftw3-3_win32)
ELSE(FFTW3_TMP)
SET(FFTW3_LIBRARIES libfftw3-3)
ENDIF(FFTW3_TMP)
ENDIF()
SET(FFTW3_INCLUDE_DIRS ${PATH_FFTW3}/include )
SET(FFTW3_LIBRARY_DIRS ${PATH_FFTW3}/lib )
ENDIF(PATH_FFTW3)
ENDIF(WIN32)
IF(UNIX)
INCLUDE("FindThirdPartyPkgConfig")
pkg_check_modules(FFTW3 fftw3)
ENDIF(UNIX)
IF(FFTW3_FOUND)
SET(FFTW3_LOCATED_LIBS "")
OV_PRINT(OV_PRINTED " Found fftw3 includes...")
FOREACH(FFTW3_LIB ${FFTW3_LIBRARIES})
SET(FFTW3_LIB1 "FFTW3_LIB1-NOTFOUND")
# The list is 'fftw3 m' on Fedora 19. CMake gets confused unless the two following lines are used ...
# 1) catch fftw3 if its under dependencies/lib/ (fedora19)
FIND_LIBRARY(FFTW3_LIB1 NAMES ${FFTW3_LIB} PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
# 2) catch fftw3 from found paths, and libm from usual system paths, i.e. default path is allowed. (covers other systems + libm on fedora).
FIND_LIBRARY(FFTW3_LIB1 NAMES ${FFTW3_LIB} PATHS ${FFTW3_LIBRARY_DIRS})
IF(FFTW3_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${FFTW3_LIB1}")
LIST(APPEND FFTW3_LOCATED_LIBS ${FFTW3_LIB1})
ELSE(FFTW3_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${FFTW3_LIB}")
SET(FFTW3_FOUND "-NOTFOUND")
BREAK()
ENDIF(FFTW3_LIB1)
ENDFOREACH(FFTW3_LIB)
ENDIF(FFTW3_FOUND)
IF(FFTW3_FOUND)
INCLUDE_DIRECTORIES(${FFTW3_INCLUDE_DIRS})
ADD_DEFINITIONS(${FFTW3_CFLAGS})
FOREACH(FFTW3_LIB ${FFTW3_LOCATED_LIBS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${FFTW3_LIB})
ENDFOREACH(FFTW3_LIB)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyFFTW3)
ELSE(FFTW3_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find fftw3...")
ENDIF(FFTW3_FOUND)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyFFTW3 "Yes")
@@ -0,0 +1,72 @@
#
# The gMobilab driver (Linux) was contributed by Lucie Daubigney from Supelec Metz
#
# Windows-compatibility added by Jussi T. Lindgren / Inria
#
# ---------------------------------
# Finds GTecMobiLabPlus+
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyGMobiLabPlusAPI)
IF(WIN32)
# note that the API bitness must match the OV build bitness
FIND_PATH(PATH_GMobiLabCAPI GMobiLabPlus.h PATHS
"C:/Program Files/gtec/GMobiLabCAPI/Lib"
"C:/Program Files (x86)/gtec/GMobiLabCAPI/Lib"
${LIST_DEPENDENCIES_PATH})
IF("${PLATFORM_TARGET}" STREQUAL "x64")
# We need to copy the DLL on install; note that System32 *is* the 64bit folder on 64bit arch
FIND_PATH(PATH_GMobiLabDLL gMOBIlabplus.dll PATHS
"C:/Windows/System32"
${LIST_DEPENDENCIES_PATH})
FIND_LIBRARY(LIB_GMobiLabCAPI GMobiLabplus PATHS ${PATH_GMobiLabCAPI}/x64)
ELSE()
# We need to copy the DLL on install
FIND_PATH(PATH_GMobiLabDLL gMOBIlabplus.dll PATHS
"C:/Windows/System32"
"C:/Windows/SysWOW64"
${LIST_DEPENDENCIES_PATH})
FIND_LIBRARY(LIB_GMobiLabCAPI GMobiLabplus PATHS ${PATH_GMobiLabCAPI}/x86)
ENDIF()
IF(PATH_GMobiLabCAPI AND PATH_GMobiLabDLL AND LIB_GMobiLabCAPI)
OV_PRINT(OV_PRINTED " Found gtec gMobiLabCAPI ...")
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_GMobiLabCAPI}")
INCLUDE_DIRECTORIES(${PATH_GMobiLabCAPI})
# Do not link to the dll! Its opened runtime with dlopen()
# TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_GMobiLabCAPI} )
INSTALL(PROGRAMS ${PATH_GMobiLabDLL}/gMOBIlabplus.dll DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyGMobiLabPlusAPI)
SET(OV_ThirdPartyGMobilab "YES")
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find gtec gMobiLabPlusAPI + lib + dll (optional driver)")
#OV_PRINT(OV_PRINTED " Results were ${PATH_GMobiLabCAPI} AND ${PATH_GMobiLabDLL} AND ${LIB_GMobiLabCAPI}")
ENDIF()
ENDIF()
IF(UNIX)
FIND_LIBRARY(gMOBIlabplus_LIBRARY NAMES "gMOBIlabplus" "gmobilabplusapi" PATHS "/usr/lib" "/usr/local/lib")
IF(gMOBIlabplus_LIBRARY)
OV_PRINT(OV_PRINTED " Found gtec gMobiLabPlusAPI...")
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${gMOBIlabplus_LIBRARY}")
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyGMobiLabPlusAPI)
# Do not link to the dll! Its opened runtime with dlopen()
# TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${gMOBIlabplus_LIBRARY} )
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find gtec gMobiLabPlusAPI... (optional driver)")
OV_PRINT(OV_PRINTED " : If it should be found, see that 'gmobilabapi.so' link exists on the fs, with no numeric suffixes in the filename.")
OV_PRINT(OV_PRINTED " : e.g. do 'cd /usr/lib/ ; ln -s libgmobilabplusapi.so.1.12 libgmobilabplusapi.so' ")
ENDIF()
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyGMobiLabPlusAPI "Yes")
@@ -0,0 +1,84 @@
# ---------------------------------
# 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
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyGTK)
IF(OV_DISABLE_GTK)
OV_PRINT(OV_PRINTED " GTK disabled")
RETURN()
ENDIF(OV_DISABLE_GTK)
INCLUDE("FindThirdPartyPkgConfig")
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)
OV_PRINT(OV_PRINTED " Found GTK+...")
# optimistic...
SET(GTK_FOUND_EVERYTHING "True")
#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")
ENDIF(WIN32)
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)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${GTK_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${GTK_LIB1})
ELSE(GTK_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${GTK_LIB}")
SET(GTK_FOUND_EVERYTHING "-NOTFOUND")
ENDIF(GTK_LIB1)
ENDFOREACH(GTK_LIB)
ENDIF(GTK_FOUND)
IF(GTK_FOUND_EVERYTHING)
INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyGTK)
ELSE(GTK_FOUND_EVERYTHING)
OV_PRINT(OV_PRINTED " FAILED to find GTK+ or its components...")
SET(OV_DISABLE_GTK TRUE)
IF(NOT PKG_CONFIG_FOUND)
OV_PRINT(OV_PRINTED " Did not even find pkg-config exe")
ENDIF(NOT PKG_CONFIG_FOUND)
ENDIF(GTK_FOUND_EVERYTHING)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyGTK "Yes")
@@ -0,0 +1,63 @@
# ---------------------------------
# Finds GUSBampCAPI
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyGUSBampCAPI)
IF(WIN32)
IF("${PLATFORM_TARGET}" STREQUAL "x64")
SET(GUSBAMP_ARCH "x64")
ELSE()
SET(GUSBAMP_ARCH "Win32")
ENDIF()
FIND_PATH(PATH_GUSBampCAPI gUSBamp.h PATHS
"C:/Program Files/gtec/gUSBampCAPI/API"
"C:/Program Files (x86)/gtec/gUSBampCAPI/API"
"C:/Program Files/gtec/gUSBampCAPI/API/${GUSBAMP_ARCH}"
"C:/Program Files (x86)/gtec/gUSBampCAPI/API/${GUSBAMP_ARCH}"
${LIST_DEPENDENCIES_PATH})
IF(PATH_GUSBampCAPI)
OV_PRINT(OV_PRINTED " Found gtec gUSBampCAPI...")
INCLUDE_DIRECTORIES(${PATH_GUSBampCAPI})
FIND_LIBRARY(LIB_GUSBampCAPI gUSBamp PATHS ${PATH_GUSBampCAPI})
IF(LIB_GUSBampCAPI)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_GUSBampCAPI}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_GUSBampCAPI} )
ELSE(LIB_GUSBampCAPI)
OV_PRINT(OV_PRINTED " [FAILED] lib gUSBamp")
ENDIF(LIB_GUSBampCAPI)
# Copy the DLL file at install
INSTALL(PROGRAMS "${PATH_GUSBampCAPI}/gUSBamp.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyGUSBampCAPI)
SET(OV_ThirdPartyGUSBAmp "YES")
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find gtec gUSBampCAPI (optional driver)")
ENDIF()
ENDIF(WIN32)
IF(UNIX)
# To try other versions of the gtec's library, change the number below
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so.1.14")
FIND_LIBRARY(gUSBAmpLinux_LIBRARY NAMES "gusbampapi" PATHS "/usr/lib" "/usr/local/lib")
IF(gUSBAmpLinux_LIBRARY)
OV_PRINT(OV_PRINTED " Found gtec gUSBAmpAPILinux...")
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${gUSBAmpLinux_LIBRARY}")
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyGUSBampCAPI_Linux)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${gUSBAmpLinux_LIBRARY} )
SET(OV_ThirdPartyGUSBAmp "YES")
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find gtec gUSBAmpAPI Linux... (optional)")
OV_PRINT(OV_PRINTED " : If it should be found, see that 'libgusbampapi.so.1.14' link exists on the fs, with no further nemeric suffixes in the filename.")
OV_PRINT(OV_PRINTED " : e.g. do 'cd /usr/lib/ ; ln -s libgusbampapi.so.1.14'. See gtec-bcilab/README for details.")
ENDIF()
ENDIF(UNIX)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyGUSBampCAPI "Yes")
@@ -0,0 +1,126 @@
# ---------------------------------
# Finds ITPP toolkit
#
# Sets ITPP_FOUND
# Sets ITPP_LIBRARIES
# Sets ITPP_LIBRARY_DIRS
# Sets ITPP_LDFLAGS
# Sets ITPP_LDFLAGS_OTHERS
# Sets ITPP_INCLUDE_DIRS
# Sets ITPP_CFLAGS
# Sets ITPP_CFLAGS_OTHERS
#
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyITPP)
IF(WIN32)
FIND_PATH(PATH_ITPP include/itpp/itbase.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES itpp)
IF(PATH_ITPP)
SET(ITPP_FOUND TRUE)
SET(ITPP_INCLUDE_DIRS ${PATH_ITPP}/include)
# Currently the different versions we package for different VS have a bit different lib names...
STRING(REGEX MATCH "vc100.*" MSVC_VER100 ${MSVC_SERVICE_PACK})
STRING(REGEX MATCH "vc120.*" MSVC_VER120 ${MSVC_SERVICE_PACK})
IF(MSVC_VER100)
SET(ITPP_LIBRARIES libblas.a libfftw3-3 liblapack.a libgcc.a libg2c.a)
SET(ITPP_LIBRARIES_RELEASE itpp)
SET(ITPP_LIBRARIES_DEBUG itppd)
ENDIF(MSVC_VER100)
IF(MSVC_VER120)
IF("${PLATFORM_TARGET}" STREQUAL "x64")
SET(ITPP_LIBRARIES libfftw3-3_win64)
SET(ITPP_LIBRARIES_RELEASE blas_win64_MT lapack_win64_MT itpp)
SET(ITPP_LIBRARIES_DEBUG blas_win64_MT lapack_win64_MT itpp) # we dont have a good 64bit debug build, just use release
ELSE()
SET(ITPP_LIBRARIES libfftw3-3_win32)
SET(ITPP_LIBRARIES_RELEASE blas_win32_MT lapack_win32_MT itpp)
SET(ITPP_LIBRARIES_DEBUG blas_win32_MTd lapack_win32_MTd itppd)
ENDIF()
ENDIF(MSVC_VER120)
SET(ITPP_LIBRARY_DIRS ${PATH_ITPP}/lib )
ENDIF(PATH_ITPP)
ENDIF(WIN32)
IF(UNIX)
INCLUDE("FindThirdPartyPkgConfig")
FIND_PATH(PATH_ITPP include/itpp PATHS ${LIST_DEPENDENCIES_PATH})
IF(PATH_ITPP)
FIND_LIBRARY(ITPP_LIBRARY itpp PATHS ${PATH_ITPP}/lib)
SET(ITPP_FOUND TRUE)
SET(ITPP_INCLUDE_DIRS ${PATH_ITPP}/include/)
GET_FILENAME_COMPONENT(ITPP_LIBRARY_DIRS ${ITPP_LIBRARY} DIRECTORY)
SET(ITPP_LIBRARIES_RELEASE libitpp.so)
ELSE()
pkg_check_modules(ITPP itpp)
ENDIF()
ENDIF(UNIX)
IF(ITPP_FOUND)
OV_PRINT(OV_PRINTED " Found it++...")
SET(ITPP_LOADING_FAILURE FALSE)
INCLUDE_DIRECTORIES(${ITPP_INCLUDE_DIRS})
ADD_DEFINITIONS(${ITPP_CFLAGS})
ADD_DEFINITIONS(${ITPP_CFLAGS_OTHERS})
# LINK_DIRECTORIES(${ITPP_LIBRARY_DIRS})
FOREACH(ITPP_LIB ${ITPP_LIBRARIES})
SET(ITPP_LIB1 "ITPP_LIB1-NOTFOUND")
FIND_LIBRARY(ITPP_LIB1 NAMES ${ITPP_LIB} PATHS ${ITPP_LIBRARY_DIRS} ${ITPP_LIBDIR} NO_DEFAULT_PATH)
IF(ITPP_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${ITPP_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ITPP_LIB1})
IF(WIN32)
INSTALL(FILES "${ITPP_LIBRARY_DIRS}/../bin/${ITPP_LIB}.dll" DESTINATION "${DIST_BINDIR}")
ENDIF()
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${ITPP_LIB}")
SET(ITPP_LOADING_FAILURE TRUE)
ENDIF()
ENDFOREACH()
FOREACH(ITPP_LIB ${ITPP_LIBRARIES_RELEASE})
SET(ITPP_LIB1 "ITPP_LIB1-RELEASE-NOTFOUND")
FIND_LIBRARY(ITPP_LIB1 NAMES ${ITPP_LIB} PATHS ${ITPP_LIBRARY_DIRS} ${ITPP_LIBDIR} NO_DEFAULT_PATH)
IF(ITPP_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${ITPP_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${ITPP_LIB1})
IF(WIN32)
INSTALL(FILES "${ITPP_LIBRARY_DIRS}/../bin/${ITPP_LIB}.dll" DESTINATION "${DIST_BINDIR}" CONFIGURATIONS Release)
ENDIF()
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${ITPP_LIB}")
SET(ITPP_LOADING_FAILURE TRUE)
ENDIF()
ENDFOREACH()
FOREACH(ITPP_LIB ${ITPP_LIBRARIES_DEBUG})
SET(ITPP_LIB1 "ITPP_LIB1-DEBUG-NOTFOUND")
FIND_LIBRARY(ITPP_LIB1 NAMES ${ITPP_LIB} PATHS ${ITPP_LIBRARY_DIRS} ${ITPP_LIBDIR} NO_DEFAULT_PATH)
IF(ITPP_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${ITPP_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${ITPP_LIB1})
IF(WIN32)
INSTALL(FILES "${ITPP_LIBRARY_DIRS}/../bin/${ITPP_LIB}.dll" DESTINATION "${DIST_BINDIR}" CONFIGURATIONS Debug)
ENDIF()
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${ITPP_LIB}")
SET(ITPP_LOADING_FAILURE TRUE)
ENDIF()
ENDFOREACH()
# We only add ITPP if everything was found
IF(NOT ITPP_LOADING_FAILURE)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyITPP)
ENDIF()
ELSE(ITPP_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find it++...")
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyITPP "Yes")
@@ -0,0 +1,72 @@
# ---------------------------------
# Finds LabStreamingLayer (LSL) library
#
# Sets LSL_FOUND
# Sets LSL_INCLUDE_DIRS
# Sets LSL_LIBRARY_DIRS
# Sets LSL_LIBRARIES_RELEASE
#
# Adds library to target
# Adds include path
#
# Script @author Jussi T. Lindgren / Inria
#
# @note On Windows, trying to use the debug library of LSL 1.12 in the same way we did with LSL 1.04
# caused an obscure Windows error code when launching the linking app. To sidestep, we use only the
# LSL release build library for now. To enable the debug lib, the following might be needed on Win
# in addition to linking the debug lib (but did not seem to be sufficient to make it work):
# SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DLSL_DEBUG_BINDINGS")
#
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyLSL)
# The first ${..}/liblsl path is for Windows, the second ${..}/ for Linux
FIND_PATH(PATH_LSL include/lsl_cpp.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES . liblsl NO_DEFAULT_PATH)
FIND_PATH(PATH_LSL include/lsl_cpp.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES . liblsl)
IF(PATH_LSL)
SET(LSL_FOUND TRUE)
SET(LSL_INCLUDE_DIRS ${PATH_LSL}/include/)
SET(LSL_LIBRARY_DIRS ${PATH_LSL}/lib/)
IF(WIN32)
IF("${PLATFORM_TARGET}" STREQUAL "x64")
SET(LSL_LIBRARIES_RELEASE liblsl64.lib)
SET(LSL_LIBRARIES_RELEASE_DLL liblsl64.dll)
ELSE()
SET(LSL_LIBRARIES_RELEASE liblsl32.lib)
SET(LSL_LIBRARIES_RELEASE_DLL liblsl32.dll)
ENDIF()
ELSEIF(UNIX)
SET(LSL_LIBRARIES_RELEASE liblsl.so)
ENDIF()
ENDIF()
IF(LSL_FOUND)
OV_PRINT(OV_PRINTED " Found liblsl...")
INCLUDE_DIRECTORIES(${LSL_INCLUDE_DIRS})
SET(LSL_LIB_REL "LSL_LIB_REL-NOTFOUND")
# OV_PRINT(OV_PRINTED "LSL: ${LSL_LIBRARIES_RELEASE} - ${LSL_LIBRARY_DIRS_RELEASE}")
FIND_LIBRARY(LSL_LIB_REL NAMES ${LSL_LIBRARIES_RELEASE} PATHS ${LSL_LIBRARY_DIRS} NO_DEFAULT_PATH)
IF(LSL_LIB_REL)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${LSL_LIB_REL}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${LSL_LIB_REL})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${LSL_LIB_REL})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyLSL)
IF(WIN32)
INSTALL(FILES "${LSL_LIBRARY_DIRS}/${LSL_LIBRARIES_RELEASE_DLL}" DESTINATION "${DIST_BINDIR}" CONFIGURATIONS Release Debug)
ENDIF()
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${LSL_LIB_REL}")
ENDIF()
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find liblsl (optional) ...")
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyLSL "Yes")
@@ -0,0 +1,40 @@
# /*
# * FindThirdPartyLiveAmpAPI.cmake
# *
# * Copyright (c) 2016, Brain Products GmbH. All rights reserved.
# * -- Rights transferred to Inria, contract signed ...
# *
# */
# ---------------------------------
# Finds LiveAmp library
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_FindThirdPartyLiveAmpAPI)
IF(WIN32)
FIND_PATH(PATH_LiveAmpAPI Amplifier_LIB.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_brainproducts_liveamp)
IF(PATH_LiveAmpAPI)
OV_PRINT(OV_PRINTED " Found Brain Products LiveAmp API...")
INCLUDE_DIRECTORIES(${PATH_LiveAmpAPI})
FIND_LIBRARY(LIB_LiveAmpAPI LiveAmpLib2 PATHS ${PATH_LiveAmpAPI} )
IF(LIB_LiveAmpAPI)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_LiveAmpAPI}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_LiveAmpAPI} )
ELSE(LIB_LiveAmpAPI)
OV_PRINT(OV_PRINTED " [FAILED] lib LiveAmp")
ENDIF(LIB_LiveAmpAPI)
# Copy the DLL file at install
INSTALL(PROGRAMS "${PATH_LiveAmpAPI}/LiveAmpLib2.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyLiveAmpAPI)
ELSE(PATH_LiveAmpAPI)
OV_PRINT(OV_PRINTED " FAILED to find Brain Products LiveAmp API (optional)")
ENDIF(PATH_LiveAmpAPI)
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_FindThirdPartyLiveAmpAPI "Yes")
@@ -0,0 +1,46 @@
# ---------------------------------
# Finds LUA
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyLua)
IF(WIN32)
FIND_PATH(LUA_INCLUDE_DIR lua.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lua/include NO_DEFAULT_PATH)
ELSEIF(UNIX)
if(${CMAKE_SYSTEM} MATCHES fc21)
FIND_PACKAGE(Lua REQUIRED)
else ()
FIND_PACKAGE(Lua51 REQUIRED)
endif()
ENDIF()
IF(LUA_INCLUDE_DIR)
OV_PRINT(OV_PRINTED " Found Lua... in '${LUA_INCLUDE_DIR}'")
IF(WIN32)
FIND_LIBRARY(LUA_LIBRARIES lua5.1 PATHS ${LUA_INCLUDE_DIR}/../lib NO_DEFAULT_PATH)
FIND_LIBRARY(LUA_LIBRARIES lua5.1 PATHS ${LUA_INCLUDE_DIR}/../lib)
ENDIF()
IF(LUA_LIBRARIES)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LUA_LIBRARIES}")
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LUA_LIBRARIES})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyLua)
IF(WIN32)
INSTALL(FILES "${LUA_INCLUDE_DIR}/../bin/lua5.1.dll" DESTINATION "${DIST_BINDIR}")
ENDIF()
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] lib lua5.1")
ENDIF()
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find Lua")
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyLua "Yes")
@@ -0,0 +1,21 @@
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyMCS)
IF(WIN32)
FIND_PATH(PATH_MCS nvxmcs.dll PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_mcs/lib NO_DEFAULT_PATH)
ENDIF(WIN32)
IF(PATH_MCS)
OV_PRINT(OV_PRINTED " Found MCS device SDK...")
INCLUDE_DIRECTORIES(${PATH_MCS}/../include/)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PATH_MCS}/nvxmcs.lib)
INSTALL(PROGRAMS "${PATH_MCS}/nvxmcs.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyMCS)
ELSE(PATH_MCS)
OV_PRINT(OV_PRINTED " FAILED to find MCS device SDK (optional driver)")
ENDIF(PATH_MCS)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyMCS "Yes")
@@ -0,0 +1,116 @@
# ---------------------------------
# Finds Matlab toolkit
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyMatlab)
# Clear cached variables, otherwise repeated builds lead to trouble
SET(Matlab_EXECUTABLE "Matlab_EXECUTABLE-NOTFOUND")
SET(Matlab_INCLUDE "Matlab_INCLUDE-NOTFOUND")
SET(Matlab_ROOT "Matlab_ROOT-NOTFOUND")
# See if we can locate the matlab executable
IF (WIN32)
# Unfortunately there doesn't seem to be a neat way to discover both 32 and 64bit matlabs
IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
SET(MATLAB_PATHS "C:/Program Files/MATLAB/r2015b/bin")
ELSEIF("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
SET(MATLAB_PATHS "C:/Program Files (x86)/MATLAB/r2013b/bin")
ELSE()
SET(MATLAB_PATHS "")
ENDIF()
# Ignore path on the first call, if that fails, try defaults
FIND_PROGRAM(Matlab_EXECUTABLE MATLAB PATHS ${MATLAB_PATHS} NO_DEFAULT_PATH)
FIND_PROGRAM(Matlab_EXECUTABLE MATLAB)
ENDIF(WIN32)
IF (UNIX)
FIND_PROGRAM(Matlab_EXECUTABLE matlab)
IF(NOT Matlab_EXECUTABLE)
# Alternative way to try to find matlab
FILE(GLOB_RECURSE Executable_Candidates1 "/usr/local/matlab*/matlab")
FILE(GLOB_RECURSE Executable_Candidates2 "/usr/local/MATLAB*/matlab")
SET(Executable_Candidates ${Executable_Candidates1} ${Executable_Candidates2})
IF(Executable_Candidates)
LIST(GET Executable_Candidates 0 Matlab_EXECUTABLE)
ENDIF()
ENDIF()
ENDIF(UNIX)
# Figure out the paths to libs and includes
IF(Matlab_EXECUTABLE)
# OV_PRINT(OV_PRINTED "Have Matlab_EXECUTABLE ${Matlab_EXECUTABLE}")
# Try relative to the executable path
GET_FILENAME_COMPONENT(Matlab_ROOT ${Matlab_EXECUTABLE} PATH)
IF(Matlab_ROOT)
# OV_PRINT(OV_PRINTED "Have Matlab_ROOT ${Matlab_ROOT}")
SET(Matlab_ROOT ${Matlab_ROOT}/../)
# OV_PRINT(OV_PRINTED " -> ${Matlab_ROOT}")
FIND_PATH(Matlab_INCLUDE "mex.h" PATHS ${Matlab_ROOT}/extern/include ${Matlab_ROOT}/extern/include/extern)
ENDIF()
# matlab executable path might have been pointing to a symbolic link elsewhere, try something else
IF((NOT Matlab_INCLUDE) AND UNIX)
EXECUTE_PROCESS(COMMAND matlab -e COMMAND grep "^MATLAB=" COMMAND sed "s/^MATLAB=//g" COMMAND tr "\n" "/"
OUTPUT_VARIABLE Matlab_ROOT)
FIND_PATH(Matlab_INCLUDE "mex.h" PATHS ${Matlab_ROOT}/extern/include ${Matlab_ROOT}/extern/include/extern)
ENDIF()
IF(Matlab_INCLUDE)
# OV_PRINT(OV_PRINTED "Have Matlab_INCLUDE ${Matlab_INCLUDE}")
IF(UNIX)
SET(Matlab_LIBRARIES mex mx eng)
IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
SET(Matlab_LIB_DIRECTORIES ${Matlab_ROOT}/bin/glnx86)
ELSE()
SET(Matlab_LIB_DIRECTORIES ${Matlab_ROOT}/bin/glnxa64)
ENDIF()
ENDIF(UNIX)
IF(WIN32)
SET(Matlab_LIBRARIES libmex libmx libeng) #mclmcrrt
IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
SET(Matlab_LIB_DIRECTORIES ${Matlab_ROOT}/extern/lib/win32/microsoft)
ELSE()
SET(Matlab_LIB_DIRECTORIES ${Matlab_ROOT}/extern/lib/win64/microsoft)
ENDIF()
# for delayed importation on windows
TARGET_LINK_LIBRARIES(${PROJECT_NAME} Delayimp )
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DELAYLOAD:libeng.dll /DELAYLOAD:libmx.dll")
# /DELAYLOAD:libmex.dll /DELAYLOAD:mclmcrrt.dll --> useless, no import
ENDIF(WIN32)
SET(Matlab_FOUND TRUE)
ENDIF()
ENDIF(Matlab_EXECUTABLE)
IF(Matlab_FOUND)
OV_PRINT(OV_PRINTED " Found Matlab in [${Matlab_ROOT}]")
SET(Matlab_LIB_FOUND TRUE)
INCLUDE_DIRECTORIES(${Matlab_INCLUDE})
FOREACH(Matlab_LIB ${Matlab_LIBRARIES})
SET(Matlab_LIB1 "Matlab_LIB1-NOTFOUND")
FIND_LIBRARY(Matlab_LIB1 NAMES ${Matlab_LIB} PATHS ${Matlab_LIB_DIRECTORIES} NO_DEFAULT_PATH)
FIND_LIBRARY(Matlab_LIB1 NAMES ${Matlab_LIB})
IF(Matlab_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${Matlab_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Matlab_LIB1})
ELSE(Matlab_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${Matlab_LIB}")
SET(Matlab_LIB_FOUND FALSE)
ENDIF(Matlab_LIB1)
ENDFOREACH(Matlab_LIB)
IF(Matlab_LIB_FOUND)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyMatlab)
ELSE(Matlab_LIB_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find Matlab Libs, the plugins won't be built. You need a valid MATLAB installation, bitness matching platform target ${PLATFORM_TARGET}.")
ENDIF(Matlab_LIB_FOUND)
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find Matlab (optional) ...")
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyMatlab "Yes")
@@ -0,0 +1,20 @@
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyMensiaAcquisition)
IF(WIN32)
FIND_PATH(PATH_MENSIA openvibe-driver-mensia-acquisition.dll PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_mensia_acquisition_driver NO_DEFAULT_PATH)
ENDIF(WIN32)
IF(PATH_MENSIA)
OV_PRINT(OV_PRINTED " Found Mensia Acquisition driver...")
INSTALL(DIRECTORY "${PATH_MENSIA}/" DESTINATION "${DIST_BINDIR}/" FILES_MATCHING PATTERN "*.dll")
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyMensiaAcquisition)
ELSE(PATH_MENSIA)
OV_PRINT(OV_PRINTED " FAILED to find Mensia Acquisition driver (optional driver)")
ENDIF(PATH_MENSIA)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyMensiaAcquisition "Yes")
@@ -0,0 +1,26 @@
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyMicromed)
IF(WIN32)
FIND_PATH(PATH_MICROMED_RELEASE dllMicromed.dll PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_micromed/Release NO_DEFAULT_PATH)
FIND_PATH(PATH_MICROMED_DEBUG dllMicromed.dll PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_micromed/Debug NO_DEFAULT_PATH)
ENDIF(WIN32)
IF(PATH_MICROMED_RELEASE AND PATH_MICROMED_DEBUG)
OV_PRINT(OV_PRINTED " Found Micromed dll...")
OV_PRINT(OV_PRINTED " [ OK ] dll ${PATH_MICROMED_RELEASE}/dllMicromed.dll")
OV_PRINT(OV_PRINTED " [ OK ] dll ${PATH_MICROMED_DEBUG}/dllMicromed.dll")
INSTALL(PROGRAMS "${PATH_MICROMED_RELEASE}/dllMicromed.dll" DESTINATION ${DIST_BINDIR} CONFIGURATIONS Release Optimized)
INSTALL(PROGRAMS "${PATH_MICROMED_DEBUG}/dllMicromed.dll" DESTINATION ${DIST_BINDIR} CONFIGURATIONS Debug)
INSTALL(PROGRAMS "${PATH_MICROMED_DEBUG}/dllMicromed.pdb" DESTINATION ${DIST_BINDIR} CONFIGURATIONS Debug)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyMicromed)
ELSE(PATH_MICROMED_RELEASE AND PATH_MICROMED_DEBUG)
OV_PRINT(OV_PRINTED " FAILED to find Micromed device dlls (optional driver)")
ENDIF(PATH_MICROMED_RELEASE AND PATH_MICROMED_DEBUG)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyMicromed "Yes")
@@ -0,0 +1,19 @@
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyMitsar)
IF(WIN32)
FIND_PATH(PATH_MITSAR MitsarDll.dll PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_mitsar NO_DEFAULT_PATH)
ENDIF(WIN32)
IF(PATH_MITSAR)
OV_PRINT(OV_PRINTED " Found Mitsar dll...")
INSTALL(PROGRAMS "${PATH_MITSAR}/MitsarDll.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyMitsar)
ELSE(PATH_MITSAR)
OV_PRINT(OV_PRINTED " FAILED to find Mitsar device dll (optional driver)")
ENDIF(PATH_MITSAR)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyMitsar "Yes")
@@ -0,0 +1,19 @@
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyNeXus)
IF(WIN32)
FIND_PATH(PATH_NEXUS NeXusDll.dll PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_nexus NO_DEFAULT_PATH)
ENDIF(WIN32)
IF(PATH_NEXUS)
OV_PRINT(OV_PRINTED " Found MindMedia NeXus dll...")
INSTALL(PROGRAMS "${PATH_NEXUS}/NeXusDll.dll" "${PATH_NEXUS}/RTInst.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyNeXus)
ELSE(PATH_NEXUS)
OV_PRINT(OV_PRINTED " FAILED to find MindMedia NeXus device dll (optional driver)")
ENDIF(PATH_NEXUS)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyNeXus "Yes")
@@ -0,0 +1,40 @@
# ---------------------------------
# Finds third party libs for NeuroServo driver
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyNeuroServoDeps)
IF(WIN32)
FIND_LIBRARY(LIB_STANDARD_MODULE_HID hid)
FIND_LIBRARY(LIB_STANDARD_MODULE_SETUPAPI SetupApi)
IF(LIB_STANDARD_MODULE_HID AND LIB_STANDARD_MODULE_SETUPAPI)
OV_PRINT(OV_PRINTED " Found NeuroServo driver dependencies ...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_HID})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_SETUPAPI})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyNeuroServo)
ELSE(LIB_STANDARD_MODULE_HID AND LIB_STANDARD_MODULE_SETUPAPI)
OV_PRINT(OV_PRINTED " FAILED to find NeuroServo HID driver dependencies (optional driver) ...")
ENDIF(LIB_STANDARD_MODULE_HID AND LIB_STANDARD_MODULE_SETUPAPI)
IF(LIB_STANDARD_MODULE_HID)
OV_PRINT(OV_PRINTED " [ OK ] HID library ${LIB_STANDARD_MODULE_HID}...")
ELSE(LIB_STANDARD_MODULE_HID)
OV_PRINT(OV_PRINTED " [FAILED] to find HID library...")
ENDIF(LIB_STANDARD_MODULE_HID)
IF(LIB_STANDARD_MODULE_SETUPAPI)
OV_PRINT(OV_PRINTED " [ OK ] SetupApi library ${LIB_STANDARD_MODULE_SETUPAPI}...")
ELSE(LIB_STANDARD_MODULE_SETUPAPI)
OV_PRINT(OV_PRINTED " [FAILED] to find SetupApi library...")
ENDIF(LIB_STANDARD_MODULE_SETUPAPI)
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyNeuroServoDeps "Yes")
@@ -0,0 +1,85 @@
# ---------------------------------
# Finds the ENOBIO API & library
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyNeuroelectricsEnobio3G)
IF(WIN32)
FIND_PATH(PATH_ENOBIOAPI enobio3g.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_enobio3g/enobio3g)
IF(NOT PATH_ENOBIOAPI)
OV_PRINT(OV_PRINTED " FAILED to find ENOBIO API (optional driver) - cmake looked in '${LIST_DEPENDENCIES_PATH}', skipping Enobio.")
RETURN()
ENDIF(NOT PATH_ENOBIOAPI)
OV_PRINT(OV_PRINTED " Found ENOBIO API...")
FIND_LIBRARY(LIB_ENOBIOAPI Enobio3GAPI PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_enobio3g/MSVC)
IF(NOT LIB_ENOBIOAPI)
OV_PRINT(OV_PRINTED " [FAILED] Enobio libs not found, skipping Enobio.")
RETURN()
ENDIF(NOT LIB_ENOBIOAPI)
INCLUDE_DIRECTORIES("${PATH_ENOBIOAPI}")
INSTALL(DIRECTORY "${PATH_ENOBIOAPI}/../MSVC/" DESTINATION "${DIST_BINDIR}/" FILES_MATCHING PATTERN "*.dll")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_ENOBIOAPI} )
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEnobioAPI)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_ENOBIOAPI}")
ENDIF(WIN32)
# For now, the Linux building of Enobio3G is disabled as it has not been tested with a recent Neuroelectrics lib.
IF(UNIX)
OV_PRINT(OV_PRINTED " Skipped Enobio3G, its work in progress.")
RETURN()
ENDIF(UNIX)
IF(UNIX)
SET(QTCORE_INCLUDE_PREFIX /usr/share/qt4/include/)
SET(QTCORE_LIB_PREFIX /usr/lib/x86_64-linux-gnu/)
FIND_PATH(PATH_ENOBIOAPI enobio3g.h PATHS $ENV{OpenViBE_dependencies} ${OV_BASE_DIR}/contrib/plugins/server-drivers/enobio3G/Enobio3GAPI.linux/)
IF(PATH_ENOBIOAPI)
OV_PRINT(OV_PRINTED " Found ENOBIO API...")
INCLUDE_DIRECTORIES(${PATH_ENOBIOAPI})
FIND_PATH(PATH_QTCORE_INCLUDE QtCore/QtCore ${QTCORE_INCLUDE_PREFIX})
IF(PATH_QTCORE_INCLUDE)
OV_PRINT(OV_PRINTED " [ OK ] QtCore include ${PATH_QTCORE_INCLUDE}/")
INCLUDE_DIRECTORIES(${PATH_QTCORE_INCLUDE}/)
ELSE(PATH_QTCORE_INCLUDE)
OV_PRINT(OV_PRINTED " FAILED TO FIND QtCore include PATH")
ENDIF(PATH_QTCORE_INCLUDE)
FIND_LIBRARY(LIB_ENOBIOAPI Enobio3GAPI PATHS ${PATH_ENOBIOAPI}/libs/ )
IF(LIB_ENOBIOAPI)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_ENOBIOAPI}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_ENOBIOAPI} )
ELSE(LIB_ENOBIOAPI)
OV_PRINT(OV_PRINTED " [FAILED] lib ENOBIO")
ENDIF(LIB_ENOBIOAPI)
FIND_LIBRARY(LIB_QT QtCore ${QTCORE_LIB_PREFIX})
IF(LIB_QT)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_QT}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} -L${LIB_QT} -lQtCore)
ELSE(LIB_QT)
OV_PRINT(OV_PRINTED " [ FAILED ] lib QT ${QTCORE_LIB_PREFIX}")
ENDIF(LIB_QT)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEnobioAPI)
# Copying the DLL file at postbuild
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy "${LIB_ENOBIOAPI}" "${PROJECT_SOURCE_DIR}/bin"
COMMENT " ---> Copying lib file ${LIB_ENOBIOAPI} for the Neuroelectrics Enobio driver."
VERBATIM)
ELSE(PATH_ENOBIOAPI)
OV_PRINT(OV_PRINTED " FAILED to find ENOBIO API - cmake looked in $ENV{OpenViBE_dependencies} and in ${OV_BASE_DIR}/contrib/plugins/server-drivers/enobio3G/Enobio3GAPI/")
ENDIF(PATH_ENOBIOAPI)
ENDIF(UNIX)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyNeuroelectricsEnobio3G "Yes")
@@ -0,0 +1,113 @@
# ---------------------------------
# Finds Ogre3D toolkit
#
# Sets Ogre3D_FOUND
# Sets Ogre3D_LIBRARIES
# Sets Ogre3D_LIBRARY_DIRS
# Sets Ogre3D_LDFLAGS
# Sets Ogre3D_LDFLAGS_OTHERS
# Sets Ogre3D_INCLUDE_DIRS
# Sets Ogre3D_CFLAGS
# Sets Ogre3D_CFLAGS_OTHERS
#
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyOgre3D)
IF(OV_DISABLE_OGRE)
OV_PRINT(OV_PRINTED " SKIPPED Ogre3D/OIS, disabled, no 3D ...")
RETURN()
ENDIF(OV_DISABLE_OGRE)
IF(WIN32)
FIND_PATH(PATH_Ogre3D include/OGRE/Ogre.h PATHS ${LIST_DEPENDENCIES_PATH} $ENV{OGRE_HOME} PATH_SUFFIXES ogre .)
IF(PATH_Ogre3D)
SET(Ogre3D_FOUND TRUE)
SET(OIS_FOUND TRUE)
SET(Ogre3D_INCLUDE_DIRS ${PATH_Ogre3D}/include/OGRE ${PATH_Ogre3D}/include/OIS)
# Currently the different versions we package for different VS have a bit different libs...
STRING(REGEX MATCH "vc100.*" MSVC_VER100 ${MSVC_SERVICE_PACK})
STRING(REGEX MATCH "vc120.*" MSVC_VER120 ${MSVC_SERVICE_PACK})
IF(MSVC_VER100)
SET(Ogre3D_LIBRARIES_RELEASE OgreMain OIS)
SET(Ogre3D_LIBRARIES_DEBUG OgreMain_d OIS_d)
SET(Ogre3D_LIBRARY_DIRS_DEBUG ${PATH_Ogre3D}/lib/Debug)
ENDIF(MSVC_VER100)
IF(MSVC_VER120)
SET(Ogre3D_LIBRARIES_RELEASE OgreMain OgreOverlay OIS)
SET(Ogre3D_LIBRARIES_DEBUG OgreMain_d OgreOverlay_d OIS_d)
ENDIF(MSVC_VER120)
SET(Ogre3D_LIBRARY_DIRS_DEBUG ${PATH_Ogre3D}/lib/Debug)
SET(Ogre3D_LIBRARY_DIRS_RELEASE ${PATH_Ogre3D}/lib/Release)
ENDIF(PATH_Ogre3D)
ENDIF(WIN32)
IF(UNIX)
INCLUDE("FindThirdPartyPkgConfig")
pkg_check_modules(Ogre3D OGRE)
pkg_check_modules(OIS OIS)
ENDIF(UNIX)
IF(Ogre3D_FOUND AND OIS_FOUND)
OV_PRINT(OV_PRINTED " Found Ogre3D/OIS...")
INCLUDE_DIRECTORIES(${OIS_INCLUDE_DIRS} ${Ogre3D_INCLUDE_DIRS})
ADD_DEFINITIONS(${OIS_CFLAGS} ${Ogre3D_CFLAGS})
ADD_DEFINITIONS(${OIS_CFLAGS_OTHERS} ${Ogre3D_CFLAGS_OTHERS})
# OV_PRINT(OV_PRINTED "A ${OIS_CFLAGS} ${Ogre3D_CFLAGS} B ${OIS_CFLAGS_OTHERS} ${Ogre3D_CFLAGS_OTHERS} C ${Ogre3D_LIBRARIES_RELEASE} D ${Ogre3D_LIBRARIES_DEBUG}")
IF(UNIX)
IF(Ogre3D_VERSION VERSION_EQUAL "1.9.0" OR Ogre3D_VERSION VERSION_GREATER "1.9.0")
SET(Ogre3D_LIBRARIES "${Ogre3_LIBRARIES};OgreOverlay")
ENDIF(Ogre3D_VERSION VERSION_EQUAL "1.9.0" OR Ogre3D_VERSION VERSION_GREATER "1.9.0")
FOREACH(Ogre3D_LIB ${Ogre3D_LIBRARIES} ${OIS_LIBRARIES})
SET(Ogre3D_LIB1 "Ogre3D_LIB1-NOTFOUND")
FIND_LIBRARY(Ogre3D_LIB1 NAMES ${Ogre3D_LIB} PATHS ${Ogre3D_LIBRARY_DIRS} ${Ogre3D_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(Ogre3D_LIB1 NAMES ${Ogre3D_LIB})
IF(Ogre3D_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${Ogre3D_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Ogre3D_LIB1})
ELSE(Ogre3D_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${Ogre3D_LIB}")
ENDIF(Ogre3D_LIB1)
ENDFOREACH(Ogre3D_LIB)
ENDIF(UNIX)
IF(WIN32)
FOREACH(Ogre3D_LIB ${Ogre3D_LIBRARIES_RELEASE})
SET(Ogre3D_LIB1 "Ogre3D_LIB1-NOTFOUND")
FIND_LIBRARY(Ogre3D_LIB1 NAMES ${Ogre3D_LIB} PATHS ${Ogre3D_LIBRARY_DIRS_RELEASE} ${Ogre3D_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(Ogre3D_LIB1 NAMES ${Ogre3D_LIB})
IF(Ogre3D_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${Ogre3D_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${Ogre3D_LIB1})
ELSE(Ogre3D_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${Ogre3D_LIB}")
ENDIF(Ogre3D_LIB1)
ENDFOREACH(Ogre3D_LIB)
FOREACH(Ogre3D_LIB ${Ogre3D_LIBRARIES_DEBUG})
SET(Ogre3D_LIB1 "Ogre3D_LIB1-NOTFOUND")
FIND_LIBRARY(Ogre3D_LIB1 NAMES ${Ogre3D_LIB} PATHS ${Ogre3D_LIBRARY_DIRS_DEBUG} ${Ogre3D_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(Ogre3D_LIB1 NAMES ${Ogre3D_LIB})
IF(Ogre3D_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${Ogre3D_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${Ogre3D_LIB1})
ELSE(Ogre3D_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${Ogre3D_LIB}")
ENDIF(Ogre3D_LIB1)
ENDFOREACH(Ogre3D_LIB)
ENDIF(WIN32)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyOgre3D)
ELSE(Ogre3D_FOUND AND OIS_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find Ogre3D/OIS...")
ENDIF(Ogre3D_FOUND AND OIS_FOUND)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyOgre3D "Yes")
@@ -0,0 +1,99 @@
# ---------------------------------
# Finds Ogre3DTerrain toolkit
#
# Sets Ogre3DTerrain_FOUND
# Sets Ogre3DTerrain_LIBRARIES
# Sets Ogre3DTerrain_LIBRARY_DIRS
# Sets Ogre3DTerrain_LDFLAGS
# Sets Ogre3DTerrain_LDFLAGS_OTHERS
# Sets Ogre3DTerrain_INCLUDE_DIRS
# Sets Ogre3DTerrain_CFLAGS
# Sets Ogre3DTerrain_CFLAGS_OTHERS
#
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyOgre3DTerrain)
IF(OV_DISABLE_OGRE)
OV_PRINT(OV_PRINTED " SKIPPED Ogre3D (Terrain), disabled, no 3D ...")
RETURN()
ENDIF(OV_DISABLE_OGRE)
IF(WIN32)
FIND_PATH(PATH_Ogre3DTerrain include/OGRE/Ogre.h PATHS ${LIST_DEPENDENCIES_PATH} $ENV{OGRE_HOME} PATH_SUFFIXES ogre .)
IF(PATH_Ogre3DTerrain)
SET(Ogre3DTerrain_FOUND TRUE)
SET(OIS_FOUND TRUE)
SET(Ogre3DTerrain_INCLUDE_DIRS ${PATH_Ogre3DTerrain}/include/OGRE ${PATH_Ogre3DTerrain}/include/OIS)
SET(Ogre3DTerrain_LIBRARIES_RELEASE OgreMain OIS)
SET(Ogre3DTerrain_LIBRARY_DIRS_RELEASE ${PATH_Ogre3DTerrain}/lib/Release)
SET(Ogre3DTerrain_LIBRARIES_DEBUG OgreMain_d OIS_d)
SET(Ogre3DTerrain_LIBRARY_DIRS_DEBUG ${PATH_Ogre3DTerrain}/lib/Debug)
ENDIF(PATH_Ogre3DTerrain)
ENDIF(WIN32)
IF(UNIX)
INCLUDE("FindThirdPartyPkgConfig")
pkg_check_modules(Ogre3DTerrain OGRE-Terrain)
pkg_check_modules(OIS OIS)
ENDIF(UNIX)
IF(Ogre3DTerrain_FOUND AND OIS_FOUND)
OV_PRINT(OV_PRINTED " Found Ogre3DTerrain/OIS...")
INCLUDE_DIRECTORIES(${OIS_INCLUDE_DIRS} ${Ogre3DTerrain_INCLUDE_DIRS})
ADD_DEFINITIONS(${OIS_CFLAGS} ${Ogre3DTerrain_CFLAGS})
ADD_DEFINITIONS(${OIS_CFLAGS_OTHERS} ${Ogre3DTerrain_CFLAGS_OTHERS})
# OV_PRINT(OV_PRINTED "A ${OIS_CFLAGS} ${Ogre3DTerrain_CFLAGS} B ${OIS_CFLAGS_OTHERS} ${Ogre3DTerrain_CFLAGS_OTHERS} C ${Ogre3DTerrain_LIBRARIES_RELEASE} D ${Ogre3DTerrain_LIBRARIES_DEBUG}")
IF(UNIX)
FOREACH(Ogre3DTerrain_LIB ${Ogre3DTerrain_LIBRARIES} ${OIS_LIBRARIES})
SET(Ogre3DTerrain_LIB1 "Ogre3DTerrain_LIB1-NOTFOUND")
FIND_LIBRARY(Ogre3DTerrain_LIB1 NAMES ${Ogre3DTerrain_LIB} PATHS ${Ogre3DTerrain_LIBRARY_DIRS} ${Ogre3DTerrain_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(Ogre3DTerrain_LIB1 NAMES ${Ogre3DTerrain_LIB})
IF(Ogre3DTerrain_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${Ogre3DTerrain_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Ogre3DTerrain_LIB1})
ELSE(Ogre3DTerrain_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${Ogre3DTerrain_LIB}")
ENDIF(Ogre3DTerrain_LIB1)
ENDFOREACH(Ogre3DTerrain_LIB)
ENDIF(UNIX)
IF(WIN32)
FOREACH(Ogre3DTerrain_LIB ${Ogre3DTerrain_LIBRARIES_RELEASE})
SET(Ogre3DTerrain_LIB1 "Ogre3DTerrain_LIB1-NOTFOUND")
FIND_LIBRARY(Ogre3DTerrain_LIB1 NAMES ${Ogre3DTerrain_LIB} PATHS ${Ogre3DTerrain_LIBRARY_DIRS_RELEASE} ${Ogre3DTerrain_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(Ogre3DTerrain_LIB1 NAMES ${Ogre3DTerrain_LIB})
IF(Ogre3DTerrain_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${Ogre3DTerrain_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${Ogre3DTerrain_LIB1})
ELSE(Ogre3DTerrain_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${Ogre3DTerrain_LIB}")
ENDIF(Ogre3DTerrain_LIB1)
ENDFOREACH(Ogre3DTerrain_LIB)
FOREACH(Ogre3DTerrain_LIB ${Ogre3DTerrain_LIBRARIES_DEBUG})
SET(Ogre3DTerrain_LIB1 "Ogre3DTerrain_LIB1-NOTFOUND")
FIND_LIBRARY(Ogre3DTerrain_LIB1 NAMES ${Ogre3DTerrain_LIB} PATHS ${Ogre3DTerrain_LIBRARY_DIRS_DEBUG} ${Ogre3DTerrain_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(Ogre3DTerrain_LIB1 NAMES ${Ogre3DTerrain_LIB})
IF(Ogre3DTerrain_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${Ogre3DTerrain_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${Ogre3DTerrain_LIB1})
ELSE(Ogre3DTerrain_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${Ogre3DTerrain_LIB}")
ENDIF(Ogre3DTerrain_LIB1)
ENDFOREACH(Ogre3DTerrain_LIB)
ENDIF(WIN32)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyOgre3DTerrain)
ELSE(Ogre3DTerrain_FOUND AND OIS_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find Ogre3DTerrain/OIS...")
ENDIF(Ogre3DTerrain_FOUND AND OIS_FOUND)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyOgre3DTerrain "Yes")
@@ -0,0 +1,188 @@
# ---------------------------------
# Finds OpenAL, ALUT, OGGVORBIS
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyOpenAL)
IF(WIN32)
FIND_PATH(PATH_OPENAL include/al.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES openal . NO_DEFAULT_PATH)
FIND_PATH(PATH_ALUT include/AL/alut.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES freealut .)
FIND_PATH(PATH_OGG include/ogg/ogg.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES libogg .)
FIND_PATH(PATH_VORBIS include/vorbis/vorbisfile.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES libvorbis .)
SET(BUILDTYPE_PATH_DEBUG "debug")
SET(BUILDTYPE_PATH_RELEASE "release")
IF(PATH_OPENAL)
OV_PRINT(OV_PRINTED " Found OpenAL...")
IF("${PLATFORM_TARGET}" STREQUAL "x64")
SET(OPENAL_SUBDIR "Win64")
ELSE()
SET(OPENAL_SUBDIR "Win32")
ENDIF()
FIND_LIBRARY(LIB_OPENAL OpenAL32 PATHS ${PATH_OPENAL}/libs/${OPENAL_SUBDIR}/ NO_DEFAULT_PATH)
IF(LIB_OPENAL)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_OPENAL}")
INSTALL(DIRECTORY "${PATH_OPENAL}/libs/${OPENAL_SUBDIR}/" DESTINATION "${DIST_BINDIR}/" FILES_MATCHING PATTERN "*.dll" PATTERN "EFX*" EXCLUDE)
ELSE(LIB_OPENAL)
OV_PRINT(OV_PRINTED " [FAILED] lib OpenAL32")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(LIB_OPENAL)
ELSE(PATH_OPENAL)
OV_PRINT(OV_PRINTED " FAILED to find OpenAL32")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(PATH_OPENAL)
IF(PATH_ALUT)
FIND_LIBRARY(LIB_ALUT alut PATHS ${PATH_ALUT}/lib NO_DEFAULT_PATH)
IF(LIB_ALUT)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_ALUT}")
INSTALL(DIRECTORY "${PATH_ALUT}/lib/" DESTINATION "${DIST_BINDIR}/" FILES_MATCHING PATTERN "*.dll")
ELSE(LIB_ALUT)
OV_PRINT(OV_PRINTED " [FAILED] lib alut")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(LIB_ALUT)
ELSE(PATH_ALUT)
OV_PRINT(OV_PRINTED " -- FAILED to find ALUT")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(PATH_ALUT)
IF(PATH_OGG)
FIND_LIBRARY(LIB_OGG_RELEASE libogg PATHS ${PATH_OGG}/win32/lib/${BUILDTYPE_PATH_RELEASE} NO_DEFAULT_PATH)
IF(LIB_OGG_RELEASE)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_OGG_RELEASE} (release)")
# We only have release OpenAL, so we have to include release version for libogg, and libvorbis
INSTALL(DIRECTORY "${PATH_OGG}/win32/bin/${BUILDTYPE_PATH_RELEASE}/" DESTINATION "${DIST_BINDIR}/") # CONFIGURATIONS Release)
ELSE(LIB_OGG_RELEASE)
OV_PRINT(OV_PRINTED " [FAILED] lib ogg (release)")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(LIB_OGG_RELEASE)
FIND_LIBRARY(LIB_OGG_DEBUG libogg PATHS ${PATH_OGG}/win32/lib/${BUILDTYPE_PATH_DEBUG} NO_DEFAULT_PATH)
IF(LIB_OGG_DEBUG)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_OGG_DEBUG} (debug)")
# INSTALL(DIRECTORY "${PATH_OGG}/win32/bin/${BUILDTYPE_PATH_DEBUG}/" DESTINATION "${DIST_BINDIR}/" CONFIGURATIONS Debug)
ELSE(LIB_OGG_DEBUG)
OV_PRINT(OV_PRINTED " [FAILED] lib ogg (debug)")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(LIB_OGG_DEBUG)
ELSE(PATH_OGG)
OV_PRINT(OV_PRINTED " -- FAILED to find OGG")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(PATH_OGG)
IF(PATH_VORBIS)
FIND_LIBRARY(LIB_VORBIS_RELEASE libvorbis PATHS ${PATH_VORBIS}/win32/lib/${BUILDTYPE_PATH_RELEASE} NO_DEFAULT_PATH)
IF(LIB_VORBIS_RELEASE)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_VORBIS_RELEASE} (release)")
INSTALL(FILES "${PATH_VORBIS}/win32/bin/${BUILDTYPE_PATH_RELEASE}/libvorbis.dll" DESTINATION "${DIST_BINDIR}") # CONFIGURATIONS Release)
ELSE(LIB_VORBIS_RELEASE)
OV_PRINT(OV_PRINTED " [FAILED] lib vorbis (release)")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(LIB_VORBIS_RELEASE)
FIND_LIBRARY(LIB_VORBIS_DEBUG libvorbis PATHS ${PATH_VORBIS}/win32/lib/${BUILDTYPE_PATH_DEBUG} NO_DEFAULT_PATH)
IF(LIB_VORBIS_DEBUG)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_VORBIS_DEBUG} (debug)")
# INSTALL(FILES "${PATH_VORBIS}/win32/bin/${BUILDTYPE_PATH_DEBUG}/libvorbis.dll" DESTINATION "${DIST_BINDIR}" CONFIGURATIONS Debug)
ELSE(LIB_VORBIS_DEBUG)
OV_PRINT(OV_PRINTED " [FAILED] lib vorbis (debug)")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(LIB_VORBIS_DEBUG)
FIND_LIBRARY(LIB_VORBISFILE_RELEASE libvorbisfile PATHS ${PATH_VORBIS}/win32/lib/${BUILDTYPE_PATH_RELEASE} NO_DEFAULT_PATH)
IF(LIB_VORBISFILE_RELEASE)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_VORBISFILE_RELEASE} (release)")
INSTALL(FILES "${PATH_VORBIS}/win32/bin/${BUILDTYPE_PATH_RELEASE}/libvorbisfile.dll" DESTINATION "${DIST_BINDIR}")# CONFIGURATIONS Release)
ELSE(LIB_VORBISFILE_RELEASE)
OV_PRINT(OV_PRINTED " [FAILED] lib vorbisfile (release)")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(LIB_VORBISFILE_RELEASE)
FIND_LIBRARY(LIB_VORBISFILE_DEBUG libvorbisfile PATHS ${PATH_VORBIS}/win32/lib/${BUILDTYPE_PATH_DEBUG} NO_DEFAULT_PATH)
IF(LIB_VORBISFILE_DEBUG)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_VORBISFILE_DEBUG} (debug)")
# INSTALL(FILES "${PATH_VORBIS}/win32/bin/${BUILDTYPE_PATH_DEBUG}/libvorbisfile.dll" DESTINATION "${DIST_BINDIR}" CONFIGURATIONS Debug)
ELSE(LIB_VORBISFILE_DEBUG)
OV_PRINT(OV_PRINTED " [FAILED] lib vorbisfile (debug)")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(LIB_VORBISFILE_DEBUG)
ELSE(PATH_VORBIS)
OV_PRINT(OV_PRINTED " -- FAILED to find VORBIS")
SET(OPENAL_MISSED_SOMETHING YES)
ENDIF(PATH_VORBIS)
IF(OPENAL_MISSED_SOMETHING)
OV_PRINT(OV_PRINTED " FAILED to find everything required by OpenAL")
ELSE(OPENAL_MISSED_SOMETHING)
OV_PRINT(OV_PRINTED " Found OpenAL and all its library dependencies...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_OPENAL})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_ALUT})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${LIB_OGG_DEBUG} optimized ${LIB_OGG_RELEASE} )
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${LIB_VORBIS_DEBUG} optimized ${LIB_VORBIS_RELEASE} )
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${LIB_VORBISFILE_DEBUG} optimized ${LIB_VORBISFILE_RELEASE})
INCLUDE_DIRECTORIES(${PATH_OPENAL}/include ${PATH_ALUT}/include ${PATH_OGG}/include ${PATH_VORBIS}/include)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyOpenAL)
ENDIF(OPENAL_MISSED_SOMETHING)
ENDIF(WIN32)
IF(UNIX)
INCLUDE("FindThirdPartyPkgConfig")
pkg_check_modules(ALUT freealut)
IF(ALUT_FOUND)
OV_PRINT(OV_PRINTED " Found ALUT...")
INCLUDE_DIRECTORIES(${ALUT_INCLUDE_DIRS})
ADD_DEFINITIONS(${ALUT_CFLAGS})
ADD_DEFINITIONS(${ALUT_CFLAGS_OTHERS})
# LINK_DIRECTORIES(${ALUT_LIBRARY_DIRS})
FOREACH(ALUT_LIB ${ALUT_LIBRARIES})
SET(ALUT_LIB1 "ALUT_LIB1-NOTFOUND")
FIND_LIBRARY(ALUT_LIB1 NAMES ${ALUT_LIB} PATHS ${ALUT_LIBRARY_DIRS} ${ALUT_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(ALUT_LIB1 NAMES ${ALUT_LIB})
IF(ALUT_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${ALUT_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ALUT_LIB1})
ELSE(ALUT_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${ALUT_LIB}")
ENDIF(ALUT_LIB1)
ENDFOREACH(ALUT_LIB)
ELSE(ALUT_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find ALUT...")
ENDIF(ALUT_FOUND)
pkg_check_modules(VORBIS vorbisfile)
IF(VORBIS_FOUND)
OV_PRINT(OV_PRINTED " Found VORBIS...")
INCLUDE_DIRECTORIES(${VORBIS_INCLUDE_DIRS})
ADD_DEFINITIONS(${VORBIS_CFLAGS})
ADD_DEFINITIONS(${VORBIS_CFLAGS_OTHERS})
# LINK_DIRECTORIES(${VORBIS_LIBRARY_DIRS})
FOREACH(VORBIS_LIB ${VORBIS_LIBRARIES})
SET(VORBIS_LIB1 "VORBIS_LIB1-NOTFOUND")
FIND_LIBRARY(VORBIS_LIB1 NAMES ${VORBIS_LIB} PATHS ${VORBIS_LIBRARY_DIRS} ${VORBIS_LIBDIR} NO_DEFAULT_PATH)
FIND_LIBRARY(VORBIS_LIB1 NAMES ${VORBIS_LIB})
IF(VORBIS_LIB1)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${VORBIS_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${VORBIS_LIB1})
ELSE(VORBIS_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${VORBIS_LIB}")
ENDIF(VORBIS_LIB1)
ENDFOREACH(VORBIS_LIB)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyOpenAL)
ELSE(VORBIS_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find VORBIS...")
ENDIF(VORBIS_FOUND)
ENDIF(UNIX)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyOpenAL "Yes")
@@ -0,0 +1,56 @@
# ---------------------------------
# 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
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyOpenGL)
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)
OV_PRINT(OV_PRINTED " 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)
OV_PRINT(OV_PRINTED " 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)
OV_PRINT(OV_PRINTED " [ 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,59 @@
# ---------------------------------
# Finds third party pthread lib
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyPThread)
IF(WIN32)
FIND_PATH(PTHREAD_DIR lib PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES pthread NO_DEFAULT_PATH)
FIND_PATH(PTHREAD_DIR lib PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES pthreads NO_DEFAULT_PATH)
FIND_LIBRARY(PTHREAD_LIB pthreadVC2 PATHS ${PTHREAD_DIR} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_PROGRAM(PTHREAD_DLL pthread.dll PATHS ${PTHREAD_DIR} PATH_SUFFIXES bin NO_DEFAULT_PATH)
INCLUDE("OvSetWindowsSDKPath")
SET(WS232_LIB "WS232_LIB-NOTFOUND")
FIND_LIBRARY(WS232_LIB ws2_32 ${OV_MS_SDK_PATH}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(WS232_LIB ws2_32 ${OV_MS_SDK_PATH}/lib)
IF(PTHREAD_LIB AND WS232_LIB AND PTHREAD_DLL)
OV_PRINT(OV_PRINTED " Found PThreads")
INCLUDE_DIRECTORIES(${PTHREAD_DIR}/include)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${WS232_LIB})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PTHREAD_LIB})
INSTALL(PROGRAMS "${PTHREAD_DLL}" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_PThread)
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find PThreads")
ENDIF()
IF(PTHREAD_LIB)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${PTHREAD_LIB}")
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${PTHREAD_LIB}")
ENDIF()
IF(WS232_LIB)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${WS232_LIB}")
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${WS232_LIB}")
ENDIF()
ENDIF(WIN32)
IF(UNIX)
FIND_LIBRARY(LIB_STANDARD_MODULE_PTHREAD pthread)
IF(LIB_STANDARD_MODULE_PTHREAD)
OV_PRINT(OV_PRINTED " Found pthread...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_PTHREAD})
ADD_DEFINITIONS(-DTARGET_HAS_PThread)
ELSE(LIB_STANDARD_MODULE_PTHREAD)
OV_PRINT(OV_PRINTED " FAILED to find pthread...")
ENDIF(LIB_STANDARD_MODULE_PTHREAD)
ENDIF(UNIX)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyPThread "Yes")
@@ -0,0 +1,44 @@
# ---------------------------------
# Finds third party pthreads VCE2 (largely for Fieldtrip)
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyPThreadsVCE2)
IF(WIN32)
FIND_PATH(PTHREAD_DIR lib PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES pthread NO_DEFAULT_PATH)
FIND_PATH(PTHREAD_DIR lib PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES pthreads NO_DEFAULT_PATH)
FIND_LIBRARY(PTHREAD_LIB pthreadVCE2 PATHS ${PTHREAD_DIR} PATH_SUFFIXES lib NO_DEFAULT_PATH)
INCLUDE("OvSetWindowsSDKPath")
SET(WS232_LIB "WS232_LIB-NOTFOUND")
FIND_LIBRARY(WS232_LIB ws2_32 ${OV_MS_SDK_PATH}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(WS232_LIB ws2_32 ${OV_MS_SDK_PATH}/lib)
IF(PTHREAD_LIB AND WS232_LIB)
OV_PRINT(OV_PRINTED " Found PThreads VCE2")
INCLUDE_DIRECTORIES(${PTHREAD_DIR}/include)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${WS232_LIB})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PTHREAD_LIB})
ADD_DEFINITIONS(-DTARGET_HAS_PThreadsVCE2)
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find PThreads VCE2")
ENDIF()
IF(PTHREAD_LIB)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${PTHREAD_LIB}")
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${PTHREAD_LIB}")
ENDIF()
IF(WS232_LIB)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${WS232_LIB}")
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${WS232_LIB}")
ENDIF()
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyPThreadsVCE2 "Yes")
@@ -0,0 +1,379 @@
# - a pkg-config module for CMake
#
# Usage:
# pkg_check_modules(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*)
# checks for all the given modules
#
# pkg_search_module(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*)
# checks for given modules and uses the first working one
#
# When the 'REQUIRED' argument was set, macros will fail with an error
# when module(s) could not be found
#
# It sets the following variables:
# PKG_CONFIG_FOUND ... true iff pkg-config works on the system
# PKG_CONFIG_EXECUTABLE ... pathname of the pkg-config program
# <PREFIX>_FOUND ... set to 1 iff module(s) exist
#
# For the following variables two sets of values exist; first one is the
# common one and has the given PREFIX. The second set contains flags
# which are given out when pkgconfig was called with the '--static'
# option.
# <XPREFIX>_LIBRARIES ... only the libraries (w/o the '-l')
# <XPREFIX>_LIBRARY_DIRS ... the paths of the libraries (w/o the '-L')
# <XPREFIX>_LDFLAGS ... all required linker flags
# <XPREFIX>_LDFLAGS_OTHERS ... all other linker flags
# <XPREFIX>_INCLUDE_DIRS ... the '-I' preprocessor flags (w/o the '-I')
# <XPREFIX>_CFLAGS ... all required cflags
# <XPREFIX>_CFLAGS_OTHERS ... the other compiler flags
#
# <XPREFIX> = <PREFIX> for common case
# <XPREFIX> = <PREFIX>_STATIC for static linking
#
# There are some special variables whose prefix depends on the count
# of given modules. When there is only one module, <PREFIX> stays
# unchanged. When there are multiple modules, the prefix will be
# changed to <PREFIX>_<MODNAME>:
# <XPREFIX>_VERSION ... version of the module
# <XPREFIX>_PREFIX ... prefix-directory of the module
# <XPREFIX>_INCLUDEDIR ... include-dir of the module
# <XPREFIX>_LIBDIR ... lib-dir of the module
#
# <XPREFIX> = <PREFIX> when |MODULES| == 1, else
# <XPREFIX> = <PREFIX>_<MODNAME>
#
# A <MODULE> parameter can have the following formats:
# {MODNAME} ... matches any version
# {MODNAME}>={VERSION} ... at least version <VERSION> is required
# {MODNAME}={VERSION} ... exactly version <VERSION> is required
# {MODNAME}<={VERSION} ... modules must not be newer than <VERSION>
#
# Examples
# pkg_check_modules (GLIB2 glib-2.0)
#
# pkg_check_modules (GLIB2 glib-2.0>=2.10)
# requires at least version 2.10 of glib2 and defines e.g.
# GLIB2_VERSION=2.10.3
#
# pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0)
# requires both glib2 and gtk2, and defines e.g.
# FOO_glib-2.0_VERSION=2.10.3
# FOO_gtk+-2.0_VERSION=2.8.20
#
# pkg_check_modules (XRENDER REQUIRED xrender)
# defines e.g.:
# XRENDER_LIBRARIES=Xrender;X11
# XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp
#
# pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2)
# Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
# Redistribution and use, with or without modification, are permitted
# provided that the following conditions are met:
#
# 1. Redistributions must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. The name of the author may not be used to endorse or promote
# products derived from this software without specific prior
# written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
### Common stuff ####
set(PKG_CONFIG_VERSION 1)
set(PKG_CONFIG_FOUND 0)
find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable")
mark_as_advanced(PKG_CONFIG_EXECUTABLE)
if(PKG_CONFIG_EXECUTABLE)
set(PKG_CONFIG_FOUND 1)
endif(PKG_CONFIG_EXECUTABLE)
# Unsets the given variables
macro(_pkgconfig_unset var)
set(${var} "" CACHE INTERNAL "")
endmacro(_pkgconfig_unset)
macro(_pkgconfig_set var value)
set(${var} ${value} CACHE INTERNAL "")
endmacro(_pkgconfig_set)
# Invokes pkgconfig, cleans up the result and sets variables
macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp)
set(_pkgconfig_invoke_result)
execute_process(
COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist}
OUTPUT_VARIABLE _pkgconfig_invoke_result
RESULT_VARIABLE _pkgconfig_failed)
if (_pkgconfig_failed)
set(_pkgconfig_${_varname} "")
_pkgconfig_unset(${_prefix}_${_varname})
else(_pkgconfig_failed)
string(REGEX REPLACE "[\r\n]" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
string(REGEX REPLACE " +$" "" _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
if (NOT ${_regexp} STREQUAL "")
string(REGEX REPLACE "${_regexp}" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
endif(NOT ${_regexp} STREQUAL "")
separate_arguments(_pkgconfig_invoke_result)
#message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}")
set(_pkgconfig_${_varname} ${_pkgconfig_invoke_result})
_pkgconfig_set(${_prefix}_${_varname} "${_pkgconfig_invoke_result}")
endif(_pkgconfig_failed)
endmacro(_pkgconfig_invoke)
# Invokes pkgconfig two times; once without '--static' and once with
# '--static'
macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp)
_pkgconfig_invoke("${_pkglist}" ${_prefix} ${_varname} "${cleanup_regexp}" ${ARGN})
_pkgconfig_invoke("${_pkglist}" ${_prefix} STATIC_${_varname} "${cleanup_regexp}" --static ${ARGN})
endmacro(_pkgconfig_invoke_dyn)
# Splits given arguments into options and a package list
macro(_pkgconfig_parse_options _result _is_req)
set(${_is_req} 0)
foreach(_pkg ${ARGN})
if (_pkg STREQUAL "REQUIRED")
set(${_is_req} 1)
endif (_pkg STREQUAL "REQUIRED")
endforeach(_pkg ${ARGN})
set(${_result} ${ARGN})
list(REMOVE_ITEM ${_result} "REQUIRED")
endmacro(_pkgconfig_parse_options)
###
macro(_pkg_check_modules_internal _is_required _is_silent _prefix)
_pkgconfig_unset(${_prefix}_FOUND)
_pkgconfig_unset(${_prefix}_VERSION)
_pkgconfig_unset(${_prefix}_PREFIX)
_pkgconfig_unset(${_prefix}_INCLUDEDIR)
_pkgconfig_unset(${_prefix}_LIBDIR)
_pkgconfig_unset(${_prefix}_LIBS)
_pkgconfig_unset(${_prefix}_LIBS_L)
_pkgconfig_unset(${_prefix}_LIBS_PATHS)
_pkgconfig_unset(${_prefix}_LIBS_OTHER)
_pkgconfig_unset(${_prefix}_CFLAGS)
_pkgconfig_unset(${_prefix}_CFLAGS_I)
_pkgconfig_unset(${_prefix}_CFLAGS_OTHER)
_pkgconfig_unset(${_prefix}_STATIC_LIBDIR)
_pkgconfig_unset(${_prefix}_STATIC_LIBS)
_pkgconfig_unset(${_prefix}_STATIC_LIBS_L)
_pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS)
_pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER)
_pkgconfig_unset(${_prefix}_STATIC_CFLAGS)
_pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I)
_pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER)
# create a better addressable variable of the modules and calculate its size
set(_pkg_check_modules_list ${ARGN})
list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt)
if(PKG_CONFIG_EXECUTABLE)
# give out status message telling checked module
if (NOT ${_is_silent})
if (_pkg_check_modules_cnt EQUAL 1)
# message(STATUS "checking for module '${_pkg_check_modules_list}'")
else(_pkg_check_modules_cnt EQUAL 1)
# message(STATUS "checking for modules '${_pkg_check_modules_list}'")
endif(_pkg_check_modules_cnt EQUAL 1)
endif(NOT ${_is_silent})
set(_pkg_check_modules_packages)
set(_pkg_check_modules_failed)
# iterate through module list and check whether they exist and match the required version
foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list})
set(_pkg_check_modules_exist_query)
# check whether version is given
if (_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*")
string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\1" _pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\2" _pkg_check_modules_pkg_op "${_pkg_check_modules_pkg}")
string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\3" _pkg_check_modules_pkg_ver "${_pkg_check_modules_pkg}")
else(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*")
set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
set(_pkg_check_modules_pkg_op)
set(_pkg_check_modules_pkg_ver)
endif(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*")
# handle the operands
if (_pkg_check_modules_pkg_op STREQUAL ">=")
list(APPEND _pkg_check_modules_exist_query --atleast-version)
endif(_pkg_check_modules_pkg_op STREQUAL ">=")
if (_pkg_check_modules_pkg_op STREQUAL "=")
list(APPEND _pkg_check_modules_exist_query --exact-version)
endif(_pkg_check_modules_pkg_op STREQUAL "=")
if (_pkg_check_modules_pkg_op STREQUAL "<=")
list(APPEND _pkg_check_modules_exist_query --max-version)
endif(_pkg_check_modules_pkg_op STREQUAL "<=")
# create the final query which is of the format:
# * --atleast-version <version> <pkg-name>
# * --exact-version <version> <pkg-name>
# * --max-version <version> <pkg-name>
# * --exists <pkg-name>
if (_pkg_check_modules_pkg_op)
list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_ver}")
else(_pkg_check_modules_pkg_op)
list(APPEND _pkg_check_modules_exist_query --exists)
endif(_pkg_check_modules_pkg_op)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR)
list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}")
list(APPEND _pkg_check_modules_packages "${_pkg_check_modules_pkg_name}")
# execute the query
execute_process(
COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query}
RESULT_VARIABLE _pkgconfig_retval)
# evaluate result and tell failures
if (_pkgconfig_retval)
if(NOT ${_is_silent})
message(STATUS " package '${_pkg_check_modules_pkg}' not found")
endif(NOT ${_is_silent})
set(_pkg_check_modules_failed 1)
endif(_pkgconfig_retval)
endforeach(_pkg_check_modules_pkg)
if(_pkg_check_modules_failed)
# fail when requested
if (${_is_required})
message(SEND_ERROR "A required package was not found")
endif (${_is_required})
else(_pkg_check_modules_failed)
# when we are here, we checked whether requested modules
# exist. Now, go through them and set variables
_pkgconfig_set(${_prefix}_FOUND 1)
list(LENGTH _pkg_check_modules_packages pkg_count)
# iterate through all modules again and set individual variables
foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages})
# handle case when there is only one package required
if (pkg_count EQUAL 1)
set(_pkg_check_prefix "${_prefix}")
else(pkg_count EQUAL 1)
set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}")
endif(pkg_count EQUAL 1)
_pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion )
_pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" PREFIX "" --variable=prefix )
_pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" INCLUDEDIR "" --variable=includedir )
_pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" LIBDIR "" --variable=libdir )
# message(STATUS " found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}")
endforeach(_pkg_check_modules_pkg)
# set variables which are combined for multiple modules
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other )
endif(_pkg_check_modules_failed)
else(PKG_CONFIG_EXECUTABLE)
if (${_is_required})
message(SEND_ERROR "pkg-config tool not found")
endif (${_is_required})
endif(PKG_CONFIG_EXECUTABLE)
endmacro(_pkg_check_modules_internal)
###
### User visible macros start here
###
###
macro(pkg_check_modules _prefix _module0)
# check cached value
if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION})
_pkgconfig_parse_options (_pkg_modules _pkg_is_required "${_module0}" ${ARGN})
_pkg_check_modules_internal("${_pkg_is_required}" 0 "${_prefix}" ${_pkg_modules})
_pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION})
endmacro(pkg_check_modules)
###
macro(pkg_search_module _prefix _module0)
# check cached value
if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION})
set(_pkg_modules_found 0)
_pkgconfig_parse_options(_pkg_modules_alt _pkg_is_required "${_module0}" ${ARGN})
# message(STATUS "checking for one of the modules '${_pkg_modules_alt}'")
# iterate through all modules and stop at the first working one.
foreach(_pkg_alt ${_pkg_modules_alt})
if(NOT _pkg_modules_found)
_pkg_check_modules_internal(0 1 "${_prefix}" "${_pkg_alt}")
endif(NOT _pkg_modules_found)
if (${_prefix}_FOUND)
set(_pkg_modules_found 1)
endif(${_prefix}_FOUND)
endforeach(_pkg_alt)
if (NOT ${_prefix}_FOUND)
if(${_pkg_is_required})
message(SEND_ERROR "None of the required '${_pkg_modules_alt}' found")
endif(${_pkg_is_required})
endif(NOT ${_prefix}_FOUND)
_pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION})
endmacro(pkg_search_module)
###
macro(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags)
message(STATUS "WARNING: you are using the obsolete 'PKGCONFIG' macro")
_pkg_check_modules_internal(0 0 _PKGCONFIG_TMP "${_package}")
if (_PKGCONFIG_TMP_FOUND)
set(${_include_DIR} ${_PKGCONFIG_TMP_INCLUDEDIR})
set(${_link_DIR} ${_PKGCONFIG_TMP_LIBDIR})
set(${_link_FLAGS} ${_PKGCONFIG_TMP_LDFLAGS})
set(${_cflags} ${_PKGCONFIG_TMP_CFLAGS})
set(_return_VALUE 0)
else(_PKGCONFIG_TMP_FOUND)
set(${_include_DIR})
set(${_link_DIR})
set(${_link_FLAGS})
set(${_cflags})
set(_return_VALUE 1)
endif(_PKGCONFIG_TMP_FOUND)
endmacro(PKGCONFIG)
### Local Variables:
### mode: cmake
### End:
@@ -0,0 +1,37 @@
# ---------------------------------
# Finds Python
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyPython2)
SET(Python_ADDITIONAL_VERSIONS 2.7)
# Stops lookup as soon as a version satisfying the version constraints is found.
# Important when building both 32bits andd 64bits versions on the same machine.
# CMake might go for the 64bits version of Python when building 32bits, making the compilation fail.
# To work, you need to ensure that 32bits versions of Python appearing first in the Path.
# This is only needed for windows.
SET(Python2_FIND_STRATEGY LOCATION)
FIND_PACKAGE(Python2 COMPONENTS Development)
IF(Python2_FOUND)
OV_PRINT(OV_PRINTED " Found Python 2 at ${Python2_LIBRARIES}")
INCLUDE_DIRECTORIES(${Python2_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Python2_LIBRARIES})
IF(WIN32)
# These are needed not to cause a popup on machines missing the dll
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized Delayimp )
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DELAYLOAD:python27.dll")
ENDIF()
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyPython2)
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find Python 2 (needs v2.7 with bitness matching build target ${PLATFORM_TARGET})")
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyPython2 "Yes")
@@ -0,0 +1,37 @@
# ---------------------------------
# Finds Python
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyPython3)
SET(Python_ADDITIONAL_VERSIONS 3.7)
# Stops lookup as soon as a version satisfying the version constraints is found.
# Important when building both 32bits andd 64bits versions on the same machine.
# CMake might go for the 64bits version of Python when building 32bits, making the compilation fail.
# To work, you need to ensure that 32bits versions of Python appearing first in the Path.
# This is only needed for windows.
SET(Python3_FIND_STRATEGY LOCATION)
FIND_PACKAGE(Python3 COMPONENTS Development)
IF(Python3_FOUND)
OV_PRINT(OV_PRINTED " Found Python 3 at ${Python3_LIBRARIES}")
INCLUDE_DIRECTORIES(${Python3_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Python3_LIBRARIES})
IF(WIN32)
# These are needed not to cause a popup on machines missing the dll
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized Delayimp )
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DELAYLOAD:python37.dll")
ENDIF()
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyPython3)
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find Python 3 (needs v3.7 with bitness matching build target ${PLATFORM_TARGET})")
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyPython3 "Yes")
@@ -0,0 +1,22 @@
# ---------------------------------
# Finds third party rt
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyRT)
IF(UNIX)
# For Ubuntu 13.04 (interprocess/ipc/message_queue.hpp in ovasCPluginExternalStimulations.cpp caused dep)
FIND_LIBRARY(LIB_STANDARD_MODULE_RT rt)
IF(LIB_STANDARD_MODULE_RT)
OV_PRINT(OV_PRINTED " Found rt...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_RT})
ELSE(LIB_STANDARD_MODULE_RT)
OV_PRINT(OV_PRINTED " FAILED to find rt...")
ENDIF(LIB_STANDARD_MODULE_RT)
ENDIF(UNIX)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyBoost_RT "Yes")
@@ -0,0 +1,19 @@
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyTMSi)
IF(WIN32)
FIND_PATH(PATH_TMSi TMSiSDK.dll PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES sdk_tmsi NO_DEFAULT_PATH)
ENDIF(WIN32)
IF(PATH_TMSi)
OV_PRINT(OV_PRINTED " Found TMSi dll...")
OV_PRINT(OV_PRINTED " [ OK ] dll ${PATH_TMSi}/TMSiSDK.dll")
INSTALL(PROGRAMS "${PATH_TMSi}/TMSiSDK.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyTMSi)
ELSE(PATH_TMSi)
OV_PRINT(OV_PRINTED " FAILED to find TMSi device dll (optional driver)")
ENDIF(PATH_TMSi)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyTMSi "Yes")
@@ -0,0 +1,50 @@
# ---------------------------------
# Finds Neurosky ThinkGear library
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyThinkGearAPI)
IF(WIN32)
IF("${PLATFORM_TARGET}" STREQUAL "x64")
SET(THINKGEAR_LIBDIR "x64")
SET(THINKGEAR_LIB "thinkgear64")
ELSE()
SET(THINKGEAR_LIBDIR "win32")
SET(THINKGEAR_LIB "thinkgear")
ENDIF()
FIND_PATH(PATH_ThinkGearAPI thinkgear.h PATHS
"C:/Program Files/MindSet Windows Developer Tools 3.2/Stream SDK for PC/libs/${THINKGEAR_LIBDIR}/"
"C:/Program Files (x86)/MindSet Windows Developer Tools 3.2/Stream SDK for PC/libs/${THINKGEAR_LIBDIR}/"
${LIST_DEPENDENCIES_PATH}
NO_DEFAULT_PATH)
IF(PATH_ThinkGearAPI)
OV_PRINT(OV_PRINTED " Found ThinkGear API...")
INCLUDE_DIRECTORIES(${PATH_ThinkGearAPI})
FIND_LIBRARY(LIB_ThinkGearAPI ${THINKGEAR_LIB} PATHS ${PATH_ThinkGearAPI} )
IF(LIB_ThinkGearAPI)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_ThinkGearAPI}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_ThinkGearAPI} )
ELSE(LIB_ThinkGearAPI)
OV_PRINT(OV_PRINTED " [FAILED] lib thinkgear")
ENDIF(LIB_ThinkGearAPI)
# Copy the DLL file at install
INSTALL(PROGRAMS "${PATH_ThinkGearAPI}/${THINKGEAR_LIB}.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyThinkGearAPI)
ELSE(PATH_ThinkGearAPI)
OV_PRINT(OV_PRINTED " FAILED to find a valid ThinkGear API for NeuroSky Mindsets (optional driver)")
ENDIF(PATH_ThinkGearAPI)
ENDIF(WIN32)
IF(UNIX)
OV_PRINT(OV_PRINTED " Skipped ThinkGear API for Neurosky MindSet, only available on windows.")
ENDIF(UNIX)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyThinkGearAPI "Yes")
@@ -0,0 +1,37 @@
# ---------------------------------
# Finds VAmp FirstAmp library
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyUSBFirstAmpAPI)
IF(WIN32)
IF("${PLATFORM_TARGET}" STREQUAL "x64")
FIND_PATH(PATH_USBFirstAmpAPI FirstAmp.h PATHS "C:/Program Files/FaSDK-x64" ${LIST_DEPENDENCIES_PATH})
ELSE()
FIND_PATH(PATH_USBFirstAmpAPI FirstAmp.h PATHS "C:/Program Files/FaSDK" "C:/Program Files (x86)/FaSDK" ${LIST_DEPENDENCIES_PATH})
ENDIF()
IF(PATH_USBFirstAmpAPI)
OV_PRINT(OV_PRINTED " Found Brain Products FirstAmp (VAmp) API...")
INCLUDE_DIRECTORIES(${PATH_USBFirstAmpAPI})
FIND_LIBRARY(LIB_USBFirstAmpAPI FirstAmp PATHS ${PATH_USBFirstAmpAPI} )
IF(LIB_USBFirstAmpAPI)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_USBFirstAmpAPI}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_USBFirstAmpAPI} )
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] lib FirstAmp")
ENDIF()
# Copy the DLL file at install
INSTALL(PROGRAMS "${PATH_USBFirstAmpAPI}/FirstAmp.dll" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyUSBFirstAmpAPI)
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find Brain Products FirstAmp (VAmp) API (optional driver)")
ENDIF()
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyUSBFirstAmpAPI "Yes")
@@ -0,0 +1,91 @@
# ---------------------------------
# Adds VRPN library to the target project
# Adds include path
# Requires FindThirdPartyVRPN_Check.cmake to have been run successfully before
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyVRPN)
IF(PATH_VRPN)
# Find all library paths
IF(WIN32)
FIND_LIBRARY(LIB_VRPN vrpn PATHS ${PATH_VRPN}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_VRPN vrpn PATHS ${PATH_VRPN}/lib)
IF(LIB_VRPN)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_VRPN}")
ELSE(LIB_VRPN)
OV_PRINT(OV_PRINTED " [FAILED] lib vrpn")
RETURN()
ENDIF(LIB_VRPN)
FIND_LIBRARY(LIB_VRPN_DEBUG vrpnd PATHS ${PATH_VRPN}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_VRPN_DEBUG vrpnd PATHS ${PATH_VRPN}/lib)
IF(LIB_VRPN_DEBUG)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_VRPN_DEBUG}")
ELSE(LIB_VRPN_DEBUG)
OV_PRINT(OV_PRINTED " [FAILED] lib vrpnd")
RETURN()
ENDIF(LIB_VRPN_DEBUG)
FIND_LIBRARY(LIB_QUAT quat PATHS ${PATH_VRPN}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_QUAT quat PATHS ${PATH_VRPN}/lib)
IF(LIB_QUAT)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_QUAT}")
ELSE(LIB_QUAT)
OV_PRINT(OV_PRINTED " [FAILED] lib quat")
RETURN()
ENDIF(LIB_QUAT)
FIND_LIBRARY(LIB_QUAT_DEBUG quatd PATHS ${PATH_VRPN}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_QUAT_DEBUG quatd PATHS ${PATH_VRPN}/lib)
IF(LIB_QUAT_DEBUG)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_QUAT_DEBUG}")
ELSE(LIB_QUAT_DEBUG)
OV_PRINT(OV_PRINTED " [FAILED] lib quatd")
RETURN()
ENDIF(LIB_QUAT_DEBUG)
ENDIF(WIN32)
IF(UNIX)
FIND_LIBRARY(LIB_VRPNSERVER vrpnserver PATHS ${PATH_VRPN}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_VRPNSERVER vrpnserver PATHS ${PATH_VRPN}/lib)
IF(LIB_VRPNSERVER)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_VRPNSERVER}")
ELSE(LIB_VRPNSERVER)
OV_PRINT(OV_PRINTED " [FAILED] lib vrpnserver")
RETURN()
ENDIF(LIB_VRPNSERVER)
FIND_LIBRARY(LIB_QUAT quat PATHS ${PATH_VRPN}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(LIB_QUAT quat PATHS ${PATH_VRPN}/lib)
IF(LIB_QUAT)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_QUAT}")
ELSE(LIB_QUAT)
OV_PRINT(OV_PRINTED " [FAILED] lib quat")
RETURN()
ENDIF(LIB_QUAT)
ENDIF(UNIX)
# If we reach here, everything has been found, add
INCLUDE_DIRECTORIES(${PATH_VRPN}/include)
IF(WIN32)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${LIB_VRPN})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${LIB_VRPN_DEBUG})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${LIB_QUAT})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${LIB_QUAT_DEBUG})
ENDIF(WIN32)
IF(UNIX)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_VRPNSERVER})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_QUAT})
ENDIF(UNIX)
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyVRPN)
ELSE(PATH_VRPN)
MESSAGE(AUTHOR_WARNING "Should not run FindThirdPartyVRPN without FindThirdPartyVRPN_Check passing successfully first")
ENDIF(PATH_VRPN)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyVRPN "Yes")
@@ -0,0 +1,20 @@
# ---------------------------------
# Finds VRPN
# Sets PATH_VRPN if found
# ---------------------------------
# The first ${..}/vrpn path is for Windows, the second ${..}/ for Linux
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyVRPN_Check)
OV_PRINT(OV_PRINTED " Checking for VRPN...")
FIND_PATH(PATH_VRPN include/vrpn_BaseClass.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES vrpn . NO_DEFAULT_PATH)
FIND_PATH(PATH_VRPN include/vrpn_BaseClass.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES vrpn .)
IF(PATH_VRPN)
OV_PRINT(OV_PRINTED " Found VRPN...")
ELSE(PATH_VRPN)
OV_PRINT(OV_PRINTED " FAILED to find VRPN")
ENDIF(PATH_VRPN)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyVRPN_Check "Yes")
@@ -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
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyX11)
IF(UNIX)
INCLUDE("FindThirdPartyPkgConfig")
pkg_check_modules(X11 x11)
IF(X11_FOUND)
OV_PRINT(OV_PRINTED " Found X11...")
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)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${X11_LIB1}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${X11_LIB1})
ELSE(X11_LIB1)
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${X11_LIB}")
ENDIF(X11_LIB1)
ENDFOREACH(X11_LIB)
ELSE(X11_FOUND)
OV_PRINT(OV_PRINTED " FAILED to find X11...")
ENDIF(X11_FOUND)
ENDIF(UNIX)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyX11 "Yes")
@@ -0,0 +1,82 @@
# Adds the current project to the global properties
FUNCTION(OV_ADD_THIS_TO_PROJECT_LIST)
#MESSAGE(STATUS "ADDING: ${CMAKE_CURRENT_SOURCE_DIR}")
# Add the dir to be parsed for documentation later. We need to do this before adding subdir, in case the subdir is the actual docs dir
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS)
SET(OV_TMP "${OV_TMP};${CMAKE_CURRENT_SOURCE_DIR}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS ${OV_TMP})
ENDFUNCTION(OV_ADD_THIS_TO_PROJECT_LIST)
FUNCTION(SOURCE_DIRECTORIES CURRENT_DIR RETURN_LIST)
FILE(GLOB_RECURSE NEW_LIST ${CURRENT_DIR}/*.cpp ${CURRENT_DIR}/*.h ${CURRENT_DIR}/*.hpp ${CURRENT_DIR}/*.inl)
SET(DIR_LIST "")
FOREACH(FILE_PATH ${NEW_LIST})
GET_FILENAME_COMPONENT(DIR_PATH ${FILE_PATH} PATH)
SET(DIR_LIST ${DIR_LIST} "${DIR_PATH}/..")
ENDFOREACH()
LIST(REMOVE_DUPLICATES DIR_LIST)
SET(${RETURN_LIST} ${DIR_LIST} PARENT_SCOPE)
ENDFUNCTION(SOURCE_DIRECTORIES)
# Adds the given directory to the CMake build
FUNCTION(OV_ADD_SOURCE_DIR CURRENT_SOURCE_DIR)
# Add the given current directory
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS)
SET(OV_TMP "${OV_TMP};${CURRENT_SOURCE_DIR}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS ${OV_TMP})
# Add source code directories
SOURCE_DIRECTORIES(${CURRENT_SOURCE_DIR} LIST_DIR)
FOREACH(SUBDIR ${LIST_DIR})
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS)
SET(OV_TMP "${OV_TMP};${SUBDIR}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS ${OV_TMP})
ENDFOREACH()
ENDFUNCTION(OV_ADD_SOURCE_DIR)
#
# 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" AND NOT ${FULLPATH} MATCHES ".*\\.svn")
GET_FILENAME_COMPONENT(DIRNAME ${FULLPATH} NAME)
STRING(TOUPPER ${DIRNAME} DIRNAMEUPPER)
SET(SKIP_THIS_FOLDER "SKIP_${CURRENT_FOLDER_PREFIX}_${DIRNAMEUPPER}")
#MESSAGE(STATUS "Checking SKIP_${CURRENT_FOLDER_PREFIX}_${DIRNAMEUPPER} as branch var ${SKIP_THIS_FOLDER}")
IF(${SKIP_THIS_FOLDER})
MESSAGE(STATUS "Note: ${FULLPATH} has been skipped by setting SKIP_${CURRENT_FOLDER_PREFIX}_${DIRNAMEUPPER}")
ELSE(${SKIP_THIS_FOLDER})
# MESSAGE(STATUS "Inserting folder ${FULLPATH}")
# Add the dir to be parsed for documentation later. We need to do this before adding subdir, in case the subdir is the actual docs dir
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS)
SET(OV_TMP "${OV_TMP};${FULLPATH}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS ${OV_TMP})
SET(OV_CURRENT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/${DIRNAME}")
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS_BUILD_DIR)
SET(OV_TMP "${OV_TMP};${OV_CURRENT_BINARY_DIR}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS_BUILD_DIR ${OV_TMP})
add_subdirectory(${FULLPATH})
ENDIF(${SKIP_THIS_FOLDER})
ENDIF(IS_DIRECTORY ${FULLPATH} AND EXISTS "${FULLPATH}/CMakeLists.txt" AND NOT ${FULLPATH} MATCHES ".*\\.svn")
ENDFOREACH(FULLPATH ${FILENAMES})
ENDFUNCTION(OV_ADD_PROJECTS)
@@ -0,0 +1,52 @@
#
# This function is used to add a project to the build in the case where the current directory only contains
# 'branches', 'tags' and 'trunk' directories of a single project. The project will be added using the
# branch specified (if any) in the root CMakeList.txt or trunk otherwise.
#
# The branch variable name that is checked is made up from ${CURRENT_BRANCH_PREFIX}_${DIRNAMEUPPER}.
#
# The script also adds the directory to the global list of projects.
#
FUNCTION(OV_ADD_SINGLE_PROJECT CURRENT_BRANCH_PREFIX)
SET(BRANCH_VARIABLE_NAME "${CURRENT_BRANCH_PREFIX}")
# MESSAGE(STATUS "Parts ${CURRENT_BRANCH_PREFIX} Now ${BRANCH_VARIABLE_NAME}")
# MESSAGE(STATUS "Value ${${BRANCH_VARIABLE_NAME}}")
SET(SUBDIR "SUBDIR-NOTFOUND")
# MESSAGE(STATUS "Checking branch for ${BRANCH_VARIABLE_NAME}")
IF(${BRANCH_VARIABLE_NAME})
SET(BRANCH ${${BRANCH_VARIABLE_NAME}})
IF("${BRANCH}" STREQUAL "__SKIPME")
MESSAGE(STATUS "Note: ${BRANCH_VARIABLE_NAME} has been disabled by setting it to __SKIPME")
ELSE("${BRANCH}" STREQUAL "__SKIPME")
SET(SUBDIR "${BRANCH}")
ENDIF("${BRANCH}" STREQUAL "__SKIPME")
ELSE(${BRANCH_VARIABLE_NAME})
# MESSAGE(STATUS "Going for trunk...")
SET(SUBDIR "${OV_TRUNK}")
ENDIF(${BRANCH_VARIABLE_NAME})
IF(SUBDIR)
# MESSAGE(STATUS "Inserting folder ${SUBDIR}")
# Add the dir to be parsed for documentation later. We need to do this before adding subdir, in case the subdir is the actual docs dir.
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS)
SET(OV_TMP "${OV_TMP};${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS ${OV_TMP})
# MESSAGE(STATUS "BDIR ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIR}")
GET_PROPERTY(OV_TMP GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS_BUILD_DIR)
SET(OV_TMP "${OV_TMP};${CMAKE_CURRENT_BINARY_DIR}/${SUBDIR}")
SET_PROPERTY(GLOBAL PROPERTY OV_PROP_CURRENT_PROJECTS_BUILD_DIR ${OV_TMP})
ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR})
ENDIF(SUBDIR)
ENDFUNCTION(OV_ADD_SINGLE_PROJECT)
@@ -0,0 +1,79 @@
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()
SET(OV_CMD_EXECUTABLE "TMP_PROJECT_TARGET_PATH-NOTFOUND")
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 "${DIST_DATADIR}/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,63 @@
#
# 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)
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_BOOST_${BOOST_COMPONENT})
IF(WIN32)
SET(LIB_BOOST "unknown-platform-NOTFOUND")
SET(LIB_BOOST_DEBUG "unknown-platform-NOTFOUND")
STRING(REGEX MATCH "vc100.*" MSVC_VER100 ${MSVC_SERVICE_PACK})
IF(MSVC_VER100)
SET(LIB_BOOST "libboost_${BOOST_COMPONENT}-vc100-mt-${BOOST_VERSION}.lib")
SET(LIB_BOOST_DEBUG "libboost_${BOOST_COMPONENT}-vc100-mt-gd-${BOOST_VERSION}.lib")
ENDIF(MSVC_VER100)
STRING(REGEX MATCH "vc120.*" MSVC_VER120 ${MSVC_SERVICE_PACK})
IF(MSVC_VER120)
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_VER120)
SET(LIB_BOOST_PATH "-NOTFOUND")
FIND_LIBRARY(LIB_BOOST_PATH NAMES ${LIB_BOOST} PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES boost/lib NO_DEFAULT_PATH)
SET(LIB_BOOST_DEBUG_PATH "-NOTFOUND")
FIND_LIBRARY(LIB_BOOST_DEBUG_PATH NAMES ${LIB_BOOST_DEBUG} PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES boost/lib NO_DEFAULT_PATH)
IF(LIB_BOOST_PATH AND LIB_BOOST_DEBUG_PATH)
OV_PRINT(OV_PRINTED " Found Boost ${BOOST_COMPONENT} libraries ...")
ELSE(LIB_BOOST_PATH AND LIB_BOOST_DEBUG_PATH)
OV_PRINT(OV_PRINTED " FAILED to find all Boost ${BOOST_COMPONENT} libraries ...")
ENDIF(LIB_BOOST_PATH AND LIB_BOOST_DEBUG_PATH)
IF(LIB_BOOST_PATH)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_BOOST_PATH}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${LIB_BOOST_PATH})
ELSE(LIB_BOOST_PATH)
MESSAGE(STATUS " FAILED to find boost lib ${LIB_BOOST}")
ENDIF(LIB_BOOST_PATH)
IF(LIB_BOOST_DEBUG_PATH)
OV_PRINT(OV_PRINTED " [ OK ] lib ${LIB_BOOST_DEBUG_PATH}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${LIB_BOOST_DEBUG_PATH})
ELSE(LIB_BOOST_DEBUG_PATH)
MESSAGE(STATUS " FAILED to find boost debug lib ${LIB_BOOST_DEBUG}")
ENDIF(LIB_BOOST_DEBUG_PATH)
ENDIF(WIN32)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_BOOST_${BOOST_COMPONENT} "Yes")
ENDFUNCTION(OV_LINK_BOOST_LIB)
@@ -0,0 +1,5 @@
function(debug_message)
if(${Flag_VerboseOutput})
message(STATUS "${ARGV}")
endif()
endfunction()
@@ -0,0 +1,9 @@
FUNCTION(OV_PRINT ALREADY_PRINTED TEXT)
IF("${${ALREADY_PRINTED}}" STREQUAL "")
MESSAGE(STATUS ${TEXT})
ENDIF("${${ALREADY_PRINTED}}" STREQUAL "")
ENDFUNCTION(OV_PRINT)
@@ -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(STATUS "Could not find Microsoft Windows SDK")
ENDIF(NOT OV_MS_SDK_PATH)
@@ -0,0 +1,30 @@
#!/bin/bash
#
# This script is meant to be launched from inside an OpenViBE application (such as a scenario in Designer)
#
CALLCMD=$1
shift
ov_run_bg=0
if [ "$1" == "--run-bg" ]; then
ov_run_bg=1
shift
fi
# OV_PATH_BIN overrides the CMake specified folder, if given
LOCAL_BIN_PATH="@CMAKE_INSTALL_FULL_BINDIR@"
if [ "$OV_PATH_BIN" != "" ]; then
LOCAL_BIN_PATH="$OV_PATH_BIN"
fi
ret_code=0
if [ $ov_run_bg == 0 ]; then
eval "$LOCAL_BIN_PATH/$CALLCMD" @OV_CMD_ARGS@ $*
ret_code=$?
else
"$LOCAL_BIN_PATH/$CALLCMD" @OV_CMD_ARGS@ $* &
fi
exit $ret_code
@@ -0,0 +1,18 @@
@echo off
REM
REM This script is meant to be launched from an environment with the OV_PATH_BIN env variable set externally
REM
SET "OV_RUN_APP=%1"
SHIFT
SET OV_RUN_IN_BG=
IF /i "%1"=="--run-bg" (
REM Run in background. The first arg to START is the app title.
SET OV_RUN_IN_BG=START "%OV_RUN_APP%"
SHIFT
)
%OV_RUN_IN_BG% "%OV_PATH_ROOT%\bin\%OV_RUN_APP%" %1 %2 %3 %4 %5
@@ -0,0 +1,55 @@
@ECHO OFF
SETLOCAL EnableExtensions
SETLOCAL EnableDelayedExpansion
REM If not set to PASSIVE, OpenMP (Eigen) boxes may load the cores fully even if there's little to do.
SET "OMP_WAIT_POLICY=@OV_OMP_WAIT_POLICY@"
REM Get the directory location of this script, assume it contains the OpenViBE dist tree. These variables will be used by OpenViBE executables.
SET "OV_PATH_ROOT=%~dp0"
REM Default behavior
SET OV_PAUSE=PAUSE
SET OV_RUN_IN_BG=
REM Parse out Windows specific args ...
SET "ARGS="
SET EMPTY=
:loop
SET "STRIPPEDARG=%~1"
if NOT !STRIPPEDARG! == !EMPTY! (
IF /i "!STRIPPEDARG!" == "--no-pause" (
SET OV_PAUSE=
goto found:
)
IF /i "!STRIPPEDARG!" == "--run-bg" (
REM Run in background, disable pause. The second parameter below is because CMD requires a 'title'
SET OV_RUN_IN_BG=START "@OV_CMD_EXECUTABLE@"
SET OV_PAUSE=
goto found:
)
REM Pass the non-stripped arg to the launched application...
SET ARGS=%ARGS% %1
:found
SHIFT
goto loop:
)
REM Set dependency paths etc...
SET "OV_ENVIRONMENT_FILE=%OV_PATH_ROOT%\bin\OpenViBE-set-env.cmd"
IF NOT EXIST "%OV_ENVIRONMENT_FILE%" (
ECHO Error: "%OV_ENVIRONMENT_FILE%" was not found
GOTO EndOfScript
)
CALL "%OV_ENVIRONMENT_FILE%"
REM cmake variable OV_CMD_ARGS below may specify additional arguments outside this script
%OV_RUN_IN_BG% "%OV_PATH_ROOT%\bin\@OV_CMD_EXECUTABLE@" @OV_CMD_ARGS@ %ARGS%
:EndOfScript
%OV_PAUSE%
@@ -0,0 +1,65 @@
#!/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"
# Dump core...
# ulimit -c unlimited
# 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 LD_LIBRARY_PATH="$MATLAB_LIBPATH:$LD_LIBRARY_PATH"
fi
LOCAL_BIN_PATH="@CMAKE_INSTALL_FULL_BINDIR@"
if [ "$OV_PATH_BIN" != "" ]; then
LOCAL_BIN_PATH="$OV_PATH_BIN"
fi
LOCAL_LIB_PATH="@CMAKE_INSTALL_FULL_LIBDIR@"
if [ "$OV_PATH_LIB" != "" ]; then
LOCAL_LIB_PATH="$OV_PATH_LIB"
fi
export LD_LIBRARY_PATH="$LOCAL_LIB_PATH:@OV_PATH_DEPENDENCY_LIBS@:$LD_LIBRARY_PATH"
export LC_ALL=C
# The following line is there to help in cases where OpenViBE can consume excessive
# amounts of CPU or grind the swap. You can remove it if you know what you're doing.
renice 19 $$
ov_debugger=
if [ "$1" == "--debug" ]; then
ov_debugger="gdb --args"
shift
fi
if [ "$1" == "--memcheck" ]; then
ov_debugger="valkyrie "
#ov_debugger="valgrind --tool=memcheck --log-file='valgrind_@OV_CMD_EXECUTABLE@_%p.log'"
shift
fi
ov_run_bg=0
if [ "$1" == "--run-bg" ]; then
ov_run_bg=1
shift
fi
ret_code=0
if [ $ov_run_bg == 0 ]; then
eval $ov_debugger "$LOCAL_BIN_PATH/@OV_CMD_EXECUTABLE@" @OV_CMD_ARGS@ "$@"
ret_code=$?
else
$ov_debugger "$LOCAL_BIN_PATH/@OV_CMD_EXECUTABLE@" @OV_CMD_ARGS@ "$@" &
fi
exit $ret_code
@@ -0,0 +1,5 @@
PluginFolder=@OGRE3D_PLUGIN_PATH@
Plugin=RenderSystem_GL
Plugin=Plugin_ParticleFX
Plugin=Plugin_BSPSceneManager
Plugin=Plugin_OctreeSceneManager