Skip to content

Commit

Permalink
Merge remote-tracking branch 'openbci/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrey1994 committed Nov 7, 2019
2 parents 64937f1 + cce125f commit e9d216e
Show file tree
Hide file tree
Showing 53 changed files with 5,482 additions and 2,246 deletions.
29 changes: 14 additions & 15 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ services:

env:
global:
- secure: hRHTlAuSUqjjgUuCKDaCWYCPOdEYgnz4JOEuglaG6NnbLNx/UxWR9alxk41kdwLGH7cmN/Z7ZFWLffA0m49j3mKiNwY7fscHg7iyCTkwhfOK0F8PbYs23NqSW8dedkivwE/YC6QO8ElOO8RhqMmNZJO77v2XRmZfU4btfw40uyX3jkbyZjnj6a0SDzCWK8zCQxoaG3YPml1gsdn5QZ5hUMY79GAnVeufNJXjPNRwVZnSBD/2c95S64b6Slsx2XoTNXDUgzJFncCbmeYZGMgNbUWBG8968ew3Ck+TNG2oiH8Y8FZHgeKayJqNLC1QvRsgdiqBCci5Ve6+s8mVxikhdgYGJJXcn7G9vW2BV71U6YryRRyZPUUyj2vwAzZwSiiasQGLe0o1MEFuV/gN7M6p4m07XDYDXQogImVruvYbQXwk223/7IqnDkeHg1jzrxlx4nBgEddZKSlASG+l+2kw68XC6efB4Fm6kOId0MP00wG6PzhtywfGwIOML0QWof+XCCv8sUBz2aTLN1KXw/Bnsl5kRfAXwvDNYGMA3j1u5tCw9762qY9loenWLC/7+IZTnc4QHgCW3ZjSL0CQfMkOsGIP5fzKBeSt8/aXpXhNeEad3qkcSMeGDbs1a11zn2oKjjd0YyjoXj/GvefZe7a4tOWbBqF6ow9w6UjwCHwftM8=
- secure: o4T5hXAk2mQHYLjZ+Yr/JwMkgfe5gvjm8XLVIJ4BNsO0OpW7oXQ5Hcw8nKYlF3HEGjHkdW+nHeKFtYivI32Yu6QYvUQK0Titp91LELPKgMpz8IvpksI3SbAyQOw6trDhoV/3r0kBT2Xjw2Q8aXjH9e55Ogw6G+MhiKCJL3/y8ECofjssPNaSAJO9AEbG658KMRYL9BTjMkLJlhkeaIwTvPMWBGdIpMIll6uD1xa0iMaB1taWT0oEapuY8rygF10YgKOrsRf/P5kfd742MxdJkbMhOQcgXb6SK7yjkGp6gMbv5rktpCK+7UfQQC8ibmoI/JMjeKDLoB6eVIbWMGBHcfcgWFqIFq4sT39kCl4ZbZZ+MU77mCVqq6UA6Vy/n8tbSICJvjkaBa//6pu+oAWYsTFFLN6beAxDB1RsS78m+ejMznPX2v2KI2bHmZp2qXRdN7csp6nCXJl1b3rWhrKuIdmhS5PFAvuCXMDxpOSPhNdEa8akonISy7SGQL4jgoINsLpRrKQFpLHzcan8UHQVVg4UuRugqZ2pYYoUaP2YMbjOKg1VgKZjALlFiNIKRqlDLNT24gakSJ9OFAU45TXE8gUEpA6JyfQuP6fwrD9TwhAdLSxjQkfNT0X3Nd/aAu4AxPNI7Ra0eoIW8/O+WvVT8jK0Qfg8bH0nMIYRgVPcbmc=
- secure: QDhFByXil9s1ylj7oGofbM1gn7zWk85pj08NDZIRfvnkhg3h7+9lcV62Lqz/4bPBoURDHTjo5FQnTbWr09cBomtG+/yZ+KU+eTWu/Y1uwxQbUzpRVlOaWnrQxvHamyenK83XuiRnnXpGydjbBT1cnXM4foE93V+1t0rKk9JlGml17T3lCC6UwQirtDEWAbCqYWsFTKNq/pp3KUIxqceX3gZxY/1iI5Jk7DsgdhBSL4SIRxH913QjYZtZaLJR7Ea8jGHYqJlAc5ahrDdLZHARYcULGU/5/g9Jk2noeZzUV3gfRGLVecvB2lG4pMed3dKVLHCJ9ULmQvybfDIQ9B5ZSKvLyTfmJBtvsExUS1Vf9JT5tEhPP59jVPi3EhIvgFNEQt33HXLZELu8LMKG+5uLUoVlIuV9RwyHGh2e00fqpItTavT35VfmNrYtpxlANyfHWhu1DVI1fSuYi/VZCC1cyf7Yi4IsKooWgg/veLlDTfqfCePGoq9NpCopFvjuqdhKgM2yK/cVPKBu+cYmHjzrgoDNn0jfthn2/DeSMKOxzZxX62ZZHVqEQLeMmRT3pmVWo+DQwbWHdda2SAE3BGGlsSPlWOTmMO1hqOO+FpE4N5ObS/Toy/THuviVnT+jGt2LgStfimssZOCndHDUFAO9vkBVS1wNZ6y3ibJ3kihHJEw=
- secure: TCCuoURDpO/qIOyURTTi4mHubLc+HN5/XAKcM7uuHr4gJNw1/KQlZmOhQICv/Z7Nz5yGzCCsjl3v9zPM8VSngaHv8Z5QKdBu+hPZY/YINDqyrc5rs7lc2t/so/Wc47nUyjFuZ7wf1iGZnrXRzPrJa/tiIhBCFqS/+gIdKNn5NFDYY/pjF3Tesek969QuwCJE4sA1zzEBNxmSdo5QdbZ6yA+tLV/ccrfFcBTWYeGe9nSOG4TDJTQ1v/5aWKRIepxcMwnLaS0iyRc2GeB9KxnJsu09I4aChCo7B26onOZFcwhOwo8Vsv65HHMBMBjnJAQwN5uPPMGprej9bX3YTz+4BSLMU7+3Q1E3uonBVEbQIieY92XQmakgAFgN2BYpnP/7Wy6E0FP+j9+ia5OB/tsRC+8Vcc5PtRm5sOsBsfftYS3r4b47yH5+DEiaPsoZRs1bXiDgriwcw0aTUbqNZLUHhX8gbTqeuL3mOo6iVo5bmWIYtB+xjcPaHgKjqPPTXgmc68hQo7Qmd4i9b7jbPTR9McI6y4VGSHdzZF7jM1agl16At3EkFaEMjYsxk96IlsSvsQjK5E0RDd4+5q0M246Ua2ikBKhDH/JD9SFlO/jxyAMaofiEobg0WgQz/3kJHdqw5anUvOamziSMi48xVDwScjhnX2ihBKjuxmMEX9JPXHM=

language: java

Expand Down Expand Up @@ -97,22 +97,21 @@ script:
sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/wifi_shield_emulator.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id 4 --ip-address 127.0.0.1 --ip-protocol 2 --ip-port 17982 ;
fi

# deploy from openbci fork
# after_success:
# - sudo -H pip3 install awscli
# # push libraries from docker!
# - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# aws s3 cp $TRAVIS_BUILD_DIR/installed_docker/lib/ s3://brainflow-artifacts/$TRAVIS_COMMIT/$TRAVIS_OS_NAME --recursive ;
# fi
# - if [ "$TRAVIS_OS_NAME" = "osx" ]; then
# aws s3 cp $TRAVIS_BUILD_DIR/installed/lib/ s3://brainflow-artifacts/$TRAVIS_COMMIT/$TRAVIS_OS_NAME --recursive ;
# fi
# # notify that everything is ok
# - echo success > ${TRAVIS_OS_NAME}_success && aws s3 cp ${TRAVIS_OS_NAME}_success s3://brainflow-artifacts/$TRAVIS_COMMIT/
after_success:
- sudo -H pip3 install awscli
# push libraries from docker!
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
aws s3 cp $TRAVIS_BUILD_DIR/installed_docker/lib/ s3://brainflow/$TRAVIS_COMMIT/$TRAVIS_OS_NAME --recursive ;
fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
aws s3 cp $TRAVIS_BUILD_DIR/installed/lib/ s3://brainflow/$TRAVIS_COMMIT/$TRAVIS_OS_NAME --recursive ;
fi
# notify that everything is ok
- echo success > ${TRAVIS_OS_NAME}_success && aws s3 cp ${TRAVIS_OS_NAME}_success s3://brainflow/$TRAVIS_COMMIT/

after_failure:
# notify Appveyor of travis test failure
echo failure > ${TRAVIS_OS_NAME}_failure && aws s3 cp ${TRAVIS_OS_NAME}_failure s3://brainflow-artifacts/$TRAVIS_COMMIT/
echo failure > ${TRAVIS_OS_NAME}_failure && aws s3 cp ${TRAVIS_OS_NAME}_failure s3://brainflow/$TRAVIS_COMMIT/

notifications:
email:
Expand Down
196 changes: 92 additions & 104 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ project (brainflow)

set (CMAKE_CXX_STANDARD 11)
set (CMAKE_VERBOSE_MAKEFILE ON)
set (BRAINFLOW_VERSION 1.0.0)
set (BRAINFLOW_VERSION 2.1.0)

macro (configure_msvc_runtime)
if (MSVC)
Expand Down Expand Up @@ -45,16 +45,30 @@ macro (configure_msvc_runtime)
endmacro ()

# link msvc runtime statically
if (MSVC)
configure_msvc_runtime()
endif ()
configure_msvc_runtime ()

# add_subfolder doesnt work if you need to istall packages, add it in top level file
SET (DSPFilters "DSPFilters")
# add_subfolder doesnt work on linux if you need to istall packages, add it in top level file
SET (DSPFILTERS "DSPFilters")
aux_source_directory (${CMAKE_HOME_DIRECTORY}/third_party/DSPFilters/source DSPFILTERS_SOURCE_LIB)
add_library (${DSPFilters} STATIC ${DSPFILTERS_SOURCE_LIB})
target_include_directories (${DSPFilters} PUBLIC $<BUILD_INTERFACE:${CMAKE_HOME_DIRECTORY}/third_party/DSPFilters/include>)
set_property (TARGET ${DSPFilters} PROPERTY POSITION_INDEPENDENT_CODE ON)
add_library (${DSPFILTERS} STATIC ${DSPFILTERS_SOURCE_LIB})
target_include_directories (${DSPFILTERS} PUBLIC $<BUILD_INTERFACE:${CMAKE_HOME_DIRECTORY}/third_party/DSPFilters/include>)
set_property (TARGET ${DSPFILTERS} PROPERTY POSITION_INDEPENDENT_CODE ON)

SET (GANGLION_LIB "GanglionLib")
set (GANGLION_SOURCE_LIB
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion_bglib/callbacks.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion_bglib/cmd_def.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion_bglib/helpers.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion_bglib/main.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion_bglib/stubs.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion_bglib/uart.cpp
)
add_library (${GANGLION_LIB} STATIC ${GANGLION_SOURCE_LIB})
target_include_directories (${GANGLION_LIB} PUBLIC
$<BUILD_INTERFACE:${CMAKE_HOME_DIRECTORY}/src/utils>
$<BUILD_INTERFACE:${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion_bglib/inc>
)
set_property (TARGET ${GANGLION_LIB} PROPERTY POSITION_INDEPENDENT_CODE ON)

SET (BOARDS_JSON "brainflow_boards.json")

Expand All @@ -73,10 +87,6 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 8)
else ()
SET (BOARD_CONTROLLER_COMPILED_NAME "BoardController.dll")
SET (DATA_HANDLER_COMPILED_NAME "DataHandler.dll")
SET (GANGLION_LIB_NATIVE_PATH "${CMAKE_HOME_DIRECTORY}/GanglionBLEAPI/x64/Release/GanglionLibNative64.dll")
SET (GANGLION_LIB_PATH "${CMAKE_HOME_DIRECTORY}/GanglionBLEAPI/x64/Release/GanglionLib.dll")
SET (GANGLION_LIB_NATIVE_NAME "GanglionLibNative64.dll")
SET (GANGLION_LIB_NAME "GanglionLib.dll")
endif (APPLE)
else (CMAKE_SIZEOF_VOID_P EQUAL 8)
MESSAGE ("32 bits compiler detected")
Expand All @@ -93,36 +103,32 @@ else (CMAKE_SIZEOF_VOID_P EQUAL 8)
else ()
SET (BOARD_CONTROLLER_COMPILED_NAME "BoardController32.dll")
SET (DATA_HANDLER_COMPILED_NAME "DataHandler32.dll")
SET (GANGLION_LIB_NATIVE_PATH "${CMAKE_HOME_DIRECTORY}/GanglionBLEAPI/Win32/Release/GanglionLibNative32.dll")
SET (GANGLION_LIB_PATH "${CMAKE_HOME_DIRECTORY}/GanglionBLEAPI/Win32/Release/GanglionLib.dll")
SET (GANGLION_LIB_NATIVE_NAME "GanglionLibNative32.dll")
SET (GANGLION_LIB_NAME "GanglionLib.dll")
endif (APPLE)
endif (CMAKE_SIZEOF_VOID_P EQUAL 8)

set (BOARD_CONTROLLER_SRC
"src/utils/timestamp.cpp"
"src/utils/data_buffer.cpp"
"src/utils/serial.cpp"
"src/utils/socket_client.cpp"
"src/utils/socket_server.cpp"
"src/board_controller/openbci/openbci_serial_board.cpp"
"src/board_controller/openbci/openbci_wifi_shield_board.cpp"
"src/board_controller/openbci/ganglion_wifi.cpp"
"src/board_controller/openbci/cyton_wifi.cpp"
"src/board_controller/openbci/cyton_daisy_wifi.cpp"
"src/board_controller/openbci/ganglion.cpp"
"src/board_controller/openbci/cyton.cpp"
"src/board_controller/openbci/cyton_daisy.cpp"
"src/board_controller/board_controller.cpp"
"src/board_controller/board_info_getter.cpp"
"src/board_controller/board.cpp"
"src/board_controller/synthetic_board.cpp"
"src/board_controller/openbci/novaxr.cpp"
${CMAKE_HOME_DIRECTORY}/src/utils/timestamp.cpp
${CMAKE_HOME_DIRECTORY}/src/utils/data_buffer.cpp
${CMAKE_HOME_DIRECTORY}/src/utils/serial.cpp
${CMAKE_HOME_DIRECTORY}/src/utils/socket_client.cpp
${CMAKE_HOME_DIRECTORY}/src/utils/socket_server.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/openbci_serial_board.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/openbci_wifi_shield_board.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion_wifi.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/cyton_wifi.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/cyton_daisy_wifi.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/cyton.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/cyton_daisy.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/board_controller.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/board_info_getter.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/board.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/synthetic_board.cpp
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/novaxr.cpp
)

set (DATA_HANDLER_SRC
"src/data_handler/data_handler.cpp"
${CMAKE_HOME_DIRECTORY}/src/data_handler/data_handler.cpp
)

add_library (
Expand All @@ -137,59 +143,57 @@ add_library (

target_include_directories (
${BOARD_CONTROLLER_NAME} PRIVATE
third_party/
third_party/json
third_party/http
src/utils/
src/board_controller/inc
src/board_controller/openbci/inc
GanglionBLEAPI/Interface
${CMAKE_HOME_DIRECTORY}/third_party/
${CMAKE_HOME_DIRECTORY}/third_party/json
${CMAKE_HOME_DIRECTORY}/third_party/http
${CMAKE_HOME_DIRECTORY}/src/utils/
${CMAKE_HOME_DIRECTORY}/src/board_controller/inc
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/inc
${CMAKE_HOME_DIRECTORY}/src/board_controller/openbci/ganglion_bglib/inc
)

target_include_directories (
${DATA_HANDLER_NAME} PRIVATE
third_party/
src/utils/
src/board_controller/inc
src/data_handler/inc
third_party/DSPFilters/include
${CMAKE_HOME_DIRECTORY}/third_party/
${CMAKE_HOME_DIRECTORY}/src/utils/
${CMAKE_HOME_DIRECTORY}/src/board_controller/inc
${CMAKE_HOME_DIRECTORY}/src/data_handler/inc
${CMAKE_HOME_DIRECTORY}/third_party/DSPFilters/include
)

set_target_properties (${BOARD_CONTROLLER_NAME}
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/compiled"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/compiled"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/compiled"
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/compiled
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/compiled
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/compiled
)

set_target_properties (${DATA_HANDLER_NAME}
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/compiled"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/compiled"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/compiled"
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/compiled
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/compiled
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/compiled
)

if (UNIX)
target_link_libraries (${BOARD_CONTROLLER_NAME} pthread dl)
target_link_libraries (${DATA_HANDLER_NAME} ${DSPFilters} pthread dl)
target_link_libraries (${BOARD_CONTROLLER_NAME} ${GANGLION_LIB} pthread dl)
target_link_libraries (${DATA_HANDLER_NAME} ${DSPFILTERS} pthread dl)
else (UNIX)
target_link_libraries (${DATA_HANDLER_NAME} ${DSPFilters})
target_link_libraries (${BOARD_CONTROLLER_NAME} ${GANGLION_LIB})
target_link_libraries (${DATA_HANDLER_NAME} ${DSPFILTERS})
endif (UNIX)

# getdata
# it's impossible to install target from subfolder, so we have to move GetData target to top level or split installation
# I prefer to move GetData from subfolder to top level CMakeLists.txt
add_library (
${BRAINFLOW_CPP_BINDING_NAME} STATIC
cpp-package/src/board_shim.cpp
cpp-package/src/data_filter.cpp
${CMAKE_HOME_DIRECTORY}/cpp-package/src/board_shim.cpp
${CMAKE_HOME_DIRECTORY}/cpp-package/src/data_filter.cpp
)

target_include_directories (
${BRAINFLOW_CPP_BINDING_NAME} PRIVATE
src/board_controller/inc
src/data_handler/inc
third_party/json
${CMAKE_HOME_DIRECTORY}/src/board_controller/inc
${CMAKE_HOME_DIRECTORY}/src/data_handler/inc
${CMAKE_HOME_DIRECTORY}/third_party/json
)

if (UNIX)
Expand All @@ -206,13 +210,6 @@ if (MSVC)
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_HOME_DIRECTORY}/compiled/$<CONFIG>/${BOARD_CONTROLLER_COMPILED_NAME}" "${CMAKE_HOME_DIRECTORY}/java-package/brainflow/src/main/resources/${BOARD_CONTROLLER_COMPILED_NAME}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_HOME_DIRECTORY}/compiled/$<CONFIG>/${BOARD_CONTROLLER_COMPILED_NAME}" "${CMAKE_HOME_DIRECTORY}/csharp-package/brainflow/brainflow/lib/${BOARD_CONTROLLER_COMPILED_NAME}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_HOME_DIRECTORY}/compiled/$<CONFIG>/${BOARD_CONTROLLER_COMPILED_NAME}" "${CMAKE_HOME_DIRECTORY}/python-package/brainflow/lib/${BOARD_CONTROLLER_COMPILED_NAME}"
# copy libraries which are required for ganglion
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${GANGLION_LIB_NATIVE_PATH}" "${CMAKE_HOME_DIRECTORY}/java-package/brainflow/src/main/resources/${GANGLION_LIB_NATIVE_NAME}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${GANGLION_LIB_PATH}" "${CMAKE_HOME_DIRECTORY}/java-package/brainflow/src/main/resources/${GANGLION_LIB_NAME}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${GANGLION_LIB_NATIVE_PATH}" "${CMAKE_HOME_DIRECTORY}/csharp-package/brainflow/brainflow/lib/${GANGLION_LIB_NATIVE_NAME}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${GANGLION_LIB_PATH}" "${CMAKE_HOME_DIRECTORY}/csharp-package/brainflow/brainflow/lib/${GANGLION_LIB_NAME}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${GANGLION_LIB_NATIVE_PATH}" "${CMAKE_HOME_DIRECTORY}/python-package/brainflow/lib/${GANGLION_LIB_NATIVE_NAME}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${GANGLION_LIB_PATH}" "${CMAKE_HOME_DIRECTORY}/python-package/brainflow/lib/${GANGLION_LIB_NAME}"
)
add_custom_command (TARGET ${DATA_HANDLER_NAME} POST_BUILD
# copy data handler libs
Expand Down Expand Up @@ -248,36 +245,36 @@ add_custom_command (TARGET ${BOARD_CONTROLLER_NAME} POST_BUILD
)

# install
set (version_config "${CMAKE_HOME_DIRECTORY}/compiled/brainflowConfigVersion.cmake")
set (config_install_dir "lib/cmake/brainflow")
set (project_config "${CMAKE_HOME_DIRECTORY}/compiled/brainflowConfig.cmake")
set (targets_export_name brainflowTargets)
set (package_lib_install_dir ${CMAKE_INSTALL_PREFIX}/lib)
set (package_inc_install_dir ${CMAKE_INSTALL_PREFIX}/inc)
set (VERSION_CONFIG ${CMAKE_HOME_DIRECTORY}/compiled/brainflowConfigVersion.cmake)
set (CONFIG_INSTALL_DIR lib/cmake/brainflow)
set (PROJECT_CONFIG ${CMAKE_HOME_DIRECTORY}/compiled/brainflowConfig.cmake)
set (TARGETS_EXPORT_NAME brainflowTargets)
set (PACKAGE_LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
set (PACKAGE_INC_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/inc)

include (CMakePackageConfigHelpers)

write_basic_package_version_file (
"${version_config}"
${VERSION_CONFIG}
VERSION ${BRAINFLOW_VERSION}
COMPATIBILITY AnyNewerVersion
)

configure_package_config_file (
"cmake/Config.cmake.in"
"${project_config}"
INSTALL_DESTINATION "${config_install_dir}"
cmake/Config.cmake.in
${PROJECT_CONFIG}
INSTALL_DESTINATION ${CONFIG_INSTALL_DIR}
)

install (
FILES
"src/board_controller/inc/board_controller.h"
"src/board_controller/inc/brainflow_constants.h"
"src/board_controller/inc/board_info_getter.h"
"src/data_handler/inc/data_handler.h"
"cpp-package/src/data_filter.h"
"cpp-package/src/board_shim.h"
"cpp-package/src/brainflow_exception.h"
${CMAKE_HOME_DIRECTORY}/src/board_controller/inc/board_controller.h
${CMAKE_HOME_DIRECTORY}/src/board_controller/inc/brainflow_constants.h
${CMAKE_HOME_DIRECTORY}/src/board_controller/inc/board_info_getter.h
${CMAKE_HOME_DIRECTORY}/src/data_handler/inc/data_handler.h
${CMAKE_HOME_DIRECTORY}/cpp-package/src/data_filter.h
${CMAKE_HOME_DIRECTORY}/cpp-package/src/board_shim.h
${CMAKE_HOME_DIRECTORY}/cpp-package/src/brainflow_exception.h
DESTINATION inc
)

Expand All @@ -289,30 +286,21 @@ install (
)

install (
TARGETS ${BOARD_CONTROLLER_NAME} ${DATA_HANDLER_NAME} ${DSPFilters} ${BRAINFLOW_CPP_BINDING_NAME}
EXPORT ${targets_export_name}
TARGETS ${BOARD_CONTROLLER_NAME} ${DATA_HANDLER_NAME} ${DSPFILTERS} ${GANGLION_LIB} ${BRAINFLOW_CPP_BINDING_NAME}
EXPORT ${TARGETS_EXPORT_NAME}
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
INCLUDES DESTINATION inc
ARCHIVE DESTINATION lib
)

if (MSVC)
install (
FILES
"${GANGLION_LIB_NATIVE_PATH}"
"${GANGLION_LIB_PATH}"
DESTINATION lib
)
endif (MSVC)

install (
FILES "${project_config}" "${version_config}"
DESTINATION "${config_install_dir}"
FILES ${PROJECT_CONFIG} ${VERSION_CONFIG}
DESTINATION ${CONFIG_INSTALL_DIR}
)

install (
EXPORT ${targets_export_name}
EXPORT ${TARGETS_EXPORT_NAME}
NAMESPACE brainflow::
DESTINATION "${config_install_dir}"
DESTINATION ${CONFIG_INSTALL_DIR}
)

0 comments on commit e9d216e

Please sign in to comment.