Skip to content

Commit 9a9c47b

Browse files
iOS support for C++ API (no Swift bindings yet) (#801)
* iOS support for C++ API (no Swift bindings yet) * Add iOS GitHub Actions workflow --------- Co-authored-by: calebkuitenbrouwer <33358507+calebkuitenbrouwer@users.noreply.github.com>
1 parent bf1dbb3 commit 9a9c47b

11 files changed

Lines changed: 1275 additions & 48 deletions

File tree

.github/workflows/run_ios.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Run iOS
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
RunIOS:
7+
runs-on: macos-latest
8+
9+
steps:
10+
- name: Clone Repository
11+
uses: actions/checkout@v4
12+
13+
- name: Configure (iOS Simulator arm64)
14+
run: |
15+
cmake -B build \
16+
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/ios.toolchain.cmake \
17+
-DPLATFORM=SIMULATORARM64 \
18+
-DCMAKE_BUILD_TYPE=Release \
19+
-DBUILD_TESTS=OFF \
20+
-DBRAINFLOW_COPY_TO_PACKAGE_DIRS=OFF
21+
22+
- name: Build
23+
run: cmake --build build --config Release

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,4 +384,4 @@ Makefile
384384
*.cmd
385385
CMakeSettings.json
386386
._.gitignore
387-
387+
.DS_Store

CMakeLists.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,32 @@ option (BUILD_BLE "BUILD_BLE" OFF)
2727
option (BUILD_ONNX "BUILD_ONNX" OFF)
2828
option (BUILD_TESTS "BUILD_TESTS" OFF)
2929
option (BUILD_PERIPHERY "BUILD_PERIPHERY" OFF)
30+
option (BRAINFLOW_COPY_TO_PACKAGE_DIRS "Copy built artifacts into language package folders" ON)
31+
32+
set (BRAINFLOW_IOS OFF)
33+
if (CMAKE_SYSTEM_NAME STREQUAL "iOS")
34+
set (BRAINFLOW_IOS ON)
35+
endif ()
36+
37+
set (BRAINFLOW_CORE_LIBRARY_TYPE SHARED)
38+
if (BRAINFLOW_IOS)
39+
set (BRAINFLOW_CORE_LIBRARY_TYPE STATIC)
40+
41+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS)
42+
message (STATUS "Disabling BRAINFLOW_COPY_TO_PACKAGE_DIRS for iOS builds.")
43+
set (BRAINFLOW_COPY_TO_PACKAGE_DIRS OFF CACHE BOOL "Copy built artifacts into language package folders" FORCE)
44+
endif ()
45+
46+
if (BUILD_SYNCHRONI_SDK)
47+
message (STATUS "Disabling BUILD_SYNCHRONI_SDK for iOS builds; the bundled wrapper is macOS/Linux/Windows-only.")
48+
set (BUILD_SYNCHRONI_SDK OFF CACHE BOOL "BUILD_SYNCHRONI_SDK" FORCE)
49+
endif ()
50+
51+
if (BUILD_PERIPHERY)
52+
message (STATUS "Disabling BUILD_PERIPHERY for iOS builds.")
53+
set (BUILD_PERIPHERY OFF CACHE BOOL "BUILD_PERIPHERY" FORCE)
54+
endif ()
55+
endif ()
3056

3157
if (ANDROID)
3258
set (BUILD_BLE ON CACHE BOOL "BUILD_BLE" FORCE)

cmake/toolchains/ios.toolchain.cmake

Lines changed: 1177 additions & 0 deletions
Large diffs are not rendered by default.

cpp_package/build.cmake

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,17 @@ add_library (
2121
)
2222

2323
target_include_directories (
24-
${BRAINFLOW_CPP_BINDING_NAME} PRIVATE
25-
${CMAKE_CURRENT_SOURCE_DIR}/src/board_controller/inc
26-
${CMAKE_CURRENT_SOURCE_DIR}/src/utils/inc
27-
${CMAKE_CURRENT_SOURCE_DIR}/src/data_handler/inc
28-
${CMAKE_CURRENT_SOURCE_DIR}/cpp_package/src/inc
29-
${CMAKE_CURRENT_SOURCE_DIR}/third_party/json
30-
${CMAKE_CURRENT_SOURCE_DIR}/src/ml/inc
24+
${BRAINFLOW_CPP_BINDING_NAME} PUBLIC
25+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/board_controller/inc>
26+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/utils/inc>
27+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/data_handler/inc>
28+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/cpp_package/src/inc>
29+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/third_party/json>
30+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/ml/inc>
31+
$<INSTALL_INTERFACE:inc>
3132
)
3233

33-
target_link_libraries (${BRAINFLOW_CPP_BINDING_NAME} PRIVATE ${BOARD_CONTROLLER_NAME} ${DATA_HANDLER_NAME} ${ML_MODULE_NAME})
34+
target_link_libraries (${BRAINFLOW_CPP_BINDING_NAME} PUBLIC ${BOARD_CONTROLLER_NAME} ${DATA_HANDLER_NAME} ${ML_MODULE_NAME})
3435

3536
install (
3637
FILES

src/board_controller/build.cmake

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ if (BUILD_BLE)
117117
endif (BUILD_BLE)
118118

119119
add_library (
120-
${BOARD_CONTROLLER_NAME} SHARED
120+
${BOARD_CONTROLLER_NAME} ${BRAINFLOW_CORE_LIBRARY_TYPE}
121121
${BOARD_CONTROLLER_SRC}
122122
)
123123

@@ -206,7 +206,7 @@ if (BUILD_PERIPHERY)
206206
target_link_libraries (${BOARD_CONTROLLER_NAME} PRIVATE periphery ${CMAKE_THREAD_LIBS_INIT} dl)
207207
endif (BUILD_PERIPHERY)
208208

209-
if (MSVC)
209+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
210210
add_custom_command (TARGET ${BOARD_CONTROLLER_NAME} POST_BUILD
211211
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_FILE:${BOARD_CONTROLLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${BOARD_CONTROLLER_COMPILED_NAME}"
212212
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_FILE:${BOARD_CONTROLLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${BOARD_CONTROLLER_COMPILED_NAME}"
@@ -223,8 +223,8 @@ if (MSVC)
223223
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/board_controller/inc/board_info_getter.h" "${CMAKE_CURRENT_SOURCE_DIR}/rust_package/brainflow/inc/board_info_getter.h"
224224
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/utils/inc/brainflow_constants.h" "${CMAKE_CURRENT_SOURCE_DIR}/rust_package/brainflow/inc/brainflow_constants.h"
225225
)
226-
endif (MSVC)
227-
if (UNIX AND NOT ANDROID)
226+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
227+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
228228
add_custom_command (TARGET ${BOARD_CONTROLLER_NAME} POST_BUILD
229229
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_FILE:${BOARD_CONTROLLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${BOARD_CONTROLLER_COMPILED_NAME}"
230230
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_FILE:${BOARD_CONTROLLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${BOARD_CONTROLLER_COMPILED_NAME}"
@@ -241,7 +241,7 @@ if (UNIX AND NOT ANDROID)
241241
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/board_controller/inc/board_info_getter.h" "${CMAKE_CURRENT_SOURCE_DIR}/rust_package/brainflow/inc/board_info_getter.h"
242242
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/utils/inc/brainflow_constants.h" "${CMAKE_CURRENT_SOURCE_DIR}/rust_package/brainflow/inc/brainflow_constants.h"
243243
)
244-
endif (UNIX AND NOT ANDROID)
244+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
245245

246246
if (ANDROID)
247247
add_custom_command (TARGET ${BOARD_CONTROLLER_NAME} POST_BUILD
@@ -272,9 +272,9 @@ if (ANDROID)
272272
endif (LibFTDI1_FOUND)
273273
endif (ANDROID)
274274

275-
if (UNIX AND NOT ANDROID)
275+
if (UNIX AND NOT ANDROID AND NOT BRAINFLOW_IOS)
276276
target_link_libraries (${BOARD_CONTROLLER_NAME} PRIVATE pthread dl)
277-
endif (UNIX AND NOT ANDROID)
277+
endif (UNIX AND NOT ANDROID AND NOT BRAINFLOW_IOS)
278278
if (ANDROID)
279279
find_library (log-lib log)
280280
target_link_libraries (${BOARD_CONTROLLER_NAME} PRIVATE log)

src/board_controller/muse/muse_bglib/build.cmake

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ SET (MUSE_BLED_SOURCE_LIB
3333
${CMAKE_CURRENT_SOURCE_DIR}/src/utils/data_buffer.cpp
3434
)
3535

36-
add_library (${MUSE_BLED_LIB} SHARED ${MUSE_BLED_SOURCE_LIB})
36+
add_library (${MUSE_BLED_LIB} ${BRAINFLOW_CORE_LIBRARY_TYPE} ${MUSE_BLED_SOURCE_LIB})
3737
target_include_directories (${MUSE_BLED_LIB} PUBLIC
3838
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/utils/inc>
3939
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/board_controller/muse/muse_bglib/inc>
@@ -50,7 +50,7 @@ set_target_properties (${MUSE_BLED_LIB}
5050
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/compiled
5151
)
5252

53-
if (MSVC)
53+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
5454
add_custom_command (TARGET ${MUSE_BLED_LIB} POST_BUILD
5555
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${MUSE_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${MUSE_BLED_LIB_NAME}"
5656
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${MUSE_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${MUSE_BLED_LIB_NAME}"
@@ -59,8 +59,8 @@ if (MSVC)
5959
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${MUSE_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/matlab_package/brainflow/lib/${MUSE_BLED_LIB_NAME}"
6060
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${MUSE_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/julia_package/brainflow/lib/${MUSE_BLED_LIB_NAME}"
6161
)
62-
endif (MSVC)
63-
if (UNIX AND NOT ANDROID)
62+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
63+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
6464
add_custom_command (TARGET ${MUSE_BLED_LIB} POST_BUILD
6565
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${MUSE_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${MUSE_BLED_LIB_NAME}"
6666
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${MUSE_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${MUSE_BLED_LIB_NAME}"
@@ -69,7 +69,7 @@ if (UNIX AND NOT ANDROID)
6969
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${MUSE_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/csharp_package/brainflow/brainflow/${MUSE_BLED_LIB_NAME}"
7070
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${MUSE_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/matlab_package/brainflow/lib/${MUSE_BLED_LIB_NAME}"
7171
)
72-
endif (UNIX AND NOT ANDROID)
72+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
7373

7474
install (
7575
TARGETS ${MUSE_BLED_LIB}
@@ -78,4 +78,4 @@ install (
7878
LIBRARY DESTINATION lib
7979
INCLUDES DESTINATION inc
8080
ARCHIVE DESTINATION lib
81-
)
81+
)

src/board_controller/neuromd/brainbit_bglib/build.cmake

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ SET (BRAINBIT_BLED_SOURCE_LIB
3030
${CMAKE_CURRENT_SOURCE_DIR}/src/utils/timestamp.cpp
3131
)
3232

33-
add_library (${BRAINBIT_BLED_LIB} SHARED ${BRAINBIT_BLED_SOURCE_LIB})
33+
add_library (${BRAINBIT_BLED_LIB} ${BRAINFLOW_CORE_LIBRARY_TYPE} ${BRAINBIT_BLED_SOURCE_LIB})
3434
target_include_directories (${BRAINBIT_BLED_LIB} PUBLIC
3535
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/utils/inc>
3636
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/inc>
@@ -46,7 +46,7 @@ set_target_properties (${BRAINBIT_BLED_LIB}
4646
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/compiled
4747
)
4848

49-
if (MSVC)
49+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
5050
add_custom_command (TARGET ${BRAINBIT_BLED_LIB} POST_BUILD
5151
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${BRAINBIT_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${BRAINBIT_BLED_LIB_NAME}"
5252
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${BRAINBIT_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${BRAINBIT_BLED_LIB_NAME}"
@@ -55,8 +55,8 @@ if (MSVC)
5555
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${BRAINBIT_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/matlab_package/brainflow/lib/${BRAINBIT_BLED_LIB_NAME}"
5656
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${BRAINBIT_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/julia_package/brainflow/lib/${BRAINBIT_BLED_LIB_NAME}"
5757
)
58-
endif (MSVC)
59-
if (UNIX AND NOT ANDROID)
58+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
59+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
6060
add_custom_command (TARGET ${BRAINBIT_BLED_LIB} POST_BUILD
6161
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${BRAINBIT_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${BRAINBIT_BLED_LIB_NAME}"
6262
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${BRAINBIT_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${BRAINBIT_BLED_LIB_NAME}"
@@ -65,7 +65,7 @@ if (UNIX AND NOT ANDROID)
6565
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${BRAINBIT_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/csharp_package/brainflow/brainflow/${BRAINBIT_BLED_LIB_NAME}"
6666
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${BRAINBIT_BLED_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/matlab_package/brainflow/lib/${BRAINBIT_BLED_LIB_NAME}"
6767
)
68-
endif (UNIX AND NOT ANDROID)
68+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
6969

7070
install (
7171
TARGETS ${BRAINBIT_BLED_LIB}
@@ -74,4 +74,4 @@ install (
7474
LIBRARY DESTINATION lib
7575
INCLUDES DESTINATION inc
7676
ARCHIVE DESTINATION lib
77-
)
77+
)

src/board_controller/openbci/ganglion_bglib/build.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ SET (GANGLION_SOURCE_LIB
3030
${CMAKE_CURRENT_SOURCE_DIR}/src/utils/timestamp.cpp
3131
)
3232

33-
add_library (${GANGLION_LIB} SHARED ${GANGLION_SOURCE_LIB})
33+
add_library (${GANGLION_LIB} ${BRAINFLOW_CORE_LIBRARY_TYPE} ${GANGLION_SOURCE_LIB})
3434
target_include_directories (${GANGLION_LIB} PUBLIC
3535
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/utils/inc>
3636
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/inc>
@@ -44,7 +44,7 @@ set_target_properties (${GANGLION_LIB}
4444
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/compiled
4545
)
4646

47-
if (MSVC)
47+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
4848
add_custom_command (TARGET ${GANGLION_LIB} POST_BUILD
4949
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${GANGLION_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${GANGLION_LIB_NAME}"
5050
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${GANGLION_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${GANGLION_LIB_NAME}"
@@ -53,8 +53,8 @@ if (MSVC)
5353
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${GANGLION_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/matlab_package/brainflow/lib/${GANGLION_LIB_NAME}"
5454
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/$<CONFIG>/${GANGLION_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/julia_package/brainflow/lib/${GANGLION_LIB_NAME}"
5555
)
56-
endif (MSVC)
57-
if (UNIX AND NOT ANDROID)
56+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
57+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
5858
add_custom_command (TARGET ${GANGLION_LIB} POST_BUILD
5959
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${GANGLION_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${GANGLION_LIB_NAME}"
6060
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${GANGLION_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${GANGLION_LIB_NAME}"
@@ -63,7 +63,7 @@ if (UNIX AND NOT ANDROID)
6363
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${GANGLION_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/csharp_package/brainflow/brainflow/${GANGLION_LIB_NAME}"
6464
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${GANGLION_LIB_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/matlab_package/brainflow/lib/${GANGLION_LIB_NAME}"
6565
)
66-
endif (UNIX AND NOT ANDROID)
66+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
6767

6868
install (
6969
TARGETS ${GANGLION_LIB}

src/data_handler/build.cmake

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ SET (DATA_HANDLER_SRC
3232
)
3333

3434
add_library (
35-
${DATA_HANDLER_NAME} SHARED
35+
${DATA_HANDLER_NAME} ${BRAINFLOW_CORE_LIBRARY_TYPE}
3636
${DATA_HANDLER_SRC}
3737
)
3838

@@ -65,17 +65,17 @@ if (USE_OPENMP)
6565
endif (OpenMP_CXX_FOUND)
6666
endif (USE_OPENMP)
6767

68-
if (UNIX AND NOT ANDROID)
68+
if (UNIX AND NOT ANDROID AND NOT BRAINFLOW_IOS)
6969
target_link_libraries (${DATA_HANDLER_NAME} PRIVATE ${DSPFILTERS} ${WAVELIB} kissfft pthread dl)
70-
else (UNIX AND NOT ANDROID)
70+
else (UNIX AND NOT ANDROID AND NOT BRAINFLOW_IOS)
7171
target_link_libraries (${DATA_HANDLER_NAME} PRIVATE ${DSPFILTERS} ${WAVELIB} kissfft)
72-
endif (UNIX AND NOT ANDROID)
72+
endif (UNIX AND NOT ANDROID AND NOT BRAINFLOW_IOS)
7373
if (ANDROID)
7474
find_library (log-lib log)
7575
target_link_libraries (${DATA_HANDLER_NAME} PRIVATE log)
7676
endif (ANDROID)
7777

78-
if (MSVC)
78+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
7979
add_custom_command (TARGET ${DATA_HANDLER_NAME} POST_BUILD
8080
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_FILE:${DATA_HANDLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${DATA_HANDLER_COMPILED_NAME}"
8181
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_FILE:${DATA_HANDLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${DATA_HANDLER_COMPILED_NAME}"
@@ -89,8 +89,8 @@ if (MSVC)
8989
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_LINKER_FILE:${DATA_HANDLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/rust_package/brainflow/lib/${DATA_HANDLER_COMPILED_NAME_DOT_LIB}"
9090
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/data_handler/inc/data_handler.h" "${CMAKE_CURRENT_SOURCE_DIR}/rust_package/brainflow/inc/data_handler.h"
9191
)
92-
endif (MSVC)
93-
if (UNIX AND NOT ANDROID)
92+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND MSVC)
93+
if (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
9494
add_custom_command (TARGET ${DATA_HANDLER_NAME} POST_BUILD
9595
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_FILE:${DATA_HANDLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/nodejs_package/brainflow/lib/${DATA_HANDLER_COMPILED_NAME}"
9696
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_FILE:${DATA_HANDLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/python_package/brainflow/lib/${DATA_HANDLER_COMPILED_NAME}"
@@ -103,7 +103,7 @@ if (UNIX AND NOT ANDROID)
103103
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "$<TARGET_FILE:${DATA_HANDLER_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/rust_package/brainflow/lib/${DATA_HANDLER_COMPILED_NAME}"
104104
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/data_handler/inc/data_handler.h" "${CMAKE_CURRENT_SOURCE_DIR}/rust_package/brainflow/inc/data_handler.h"
105105
)
106-
endif (UNIX AND NOT ANDROID)
106+
endif (BRAINFLOW_COPY_TO_PACKAGE_DIRS AND UNIX AND NOT ANDROID)
107107
if (ANDROID)
108108
add_custom_command (TARGET ${DATA_HANDLER_NAME} POST_BUILD
109109
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/compiled/${DATA_HANDLER_COMPILED_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/tools/jniLibs/${ANDROID_ABI}/${DATA_HANDLER_COMPILED_NAME}"

0 commit comments

Comments
 (0)