1- cmake_minimum_required (VERSION 3.10 )
2- project (OpenBCI_GUI_Helpers)
1+ cmake_minimum_required (VERSION 3.5 FATAL_ERROR )
32
4- set (CMAKE_CXX_STANDARD 17)
5- set (CMAKE_VERBOSE_MAKEFILE ON )
6- set (BRAINFLOW_VERSION 2.1.0)
3+ project (openbci-gui-helpers LANGUAGES CXX )
4+ SET (VERSION "3.0.0" CACHE STRING "Version" )
75
8- # dont export sumbols on unix by default
9- set (CMAKE_CXX_VISIBILITY_PRESET hidden )
10- set (CMAKE_C_VISIBILITY_PRESET hidden )
6+ include ( cmake/ default.cmake )
7+ include ( modules/bglib/build.cmake )
8+ include ( modules/native-ble/build.cmake )
119
12- macro (configure_msvc_runtime )
13- if (MSVC )
14- # Default to statically-linked runtime.
15- if ("${MSVC_RUNTIME} " STREQUAL "" )
16- set (MSVC_RUNTIME "static" )
17- endif ()
18-
19- # Set compiler options.
20- set (variables
21- CMAKE_C_FLAGS_DEBUG
22- CMAKE_C_FLAGS_MINSIZEREL
23- CMAKE_C_FLAGS_RELEASE
24- CMAKE_C_FLAGS_RELWITHDEBINFO
25- CMAKE_CXX_FLAGS_DEBUG
26- CMAKE_CXX_FLAGS_MINSIZEREL
27- CMAKE_CXX_FLAGS_RELEASE
28- CMAKE_CXX_FLAGS_RELWITHDEBINFO
29- )
30-
31- if (${MSVC_RUNTIME} STREQUAL "static" )
32- message (STATUS
33- "MSVC -> forcing use of statically-linked runtime."
34- )
35-
36- foreach (variable ${variables} )
37- if (${variable} MATCHES "/MD" )
38- string (REGEX REPLACE "/MD" "/MT" ${variable} "${${variable} }" )
39- endif ()
40- endforeach ()
41- else ()
42- message (STATUS
43- "MSVC -> forcing use of dynamically-linked runtime."
44- )
45-
46- foreach (variable ${variables} )
47- if (${variable} MATCHES "/MT" )
48- string (REGEX REPLACE "/MT" "/MD" ${variable} "${${variable} }" )
49- endif ()
50- endforeach ()
51- endif ()
52- endif ()
53- endmacro ()
54-
55- # link msvc runtime statically
56- configure_msvc_runtime ()
57-
58- add_subdirectory (${CMAKE_HOME_DIRECTORY} /3rdparty/SimpleBLE/simpleble )
59-
60- SET (GANGLION_LIB "GanglionScan" )
61- set (GANGLION_SOURCE_LIB
62- ${CMAKE_HOME_DIRECTORY} /modules/bglib/src/callbacks.cpp
63- ${CMAKE_HOME_DIRECTORY} /modules/bglib/src/cmd_def.cpp
64- ${CMAKE_HOME_DIRECTORY} /modules/bglib/src/stubs.cpp
65- ${CMAKE_HOME_DIRECTORY} /modules/bglib/src/uart.cpp
66- ${CMAKE_HOME_DIRECTORY} /modules/bglib/src/openbci_gui_helpers.cpp
67- )
68-
69- add_library (${GANGLION_LIB} SHARED ${GANGLION_SOURCE_LIB} )
70-
71- target_include_directories (${GANGLION_LIB} PUBLIC
72- $<BUILD_INTERFACE :${CMAKE_HOME_DIRECTORY} /3rdparty /json >
73- $<BUILD_INTERFACE :${CMAKE_HOME_DIRECTORY} /modules /bglib /include >
74- )
75-
76- set_property (TARGET ${GANGLION_LIB} PROPERTY POSITION_INDEPENDENT_CODE ON )
77-
78- set_target_properties (${GANGLION_LIB}
79- PROPERTIES
80- ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
81- LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
82- RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
83- ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
84- LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
85- RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
86- ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
87- LIBRARY_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
88- RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
89- )
90-
91- SET (GANGLION_NATIVE_LIB "GanglionNativeScan" )
92- set (GANGLION_NATIVE_SOURCE_LIB
93- ${CMAKE_HOME_DIRECTORY} /modules/native-ble/src/openbci_gui_native_helpers.cpp
94- )
95-
96- add_library (${GANGLION_NATIVE_LIB} SHARED ${GANGLION_NATIVE_SOURCE_LIB} )
97-
98- target_include_directories (${GANGLION_NATIVE_LIB} PUBLIC
99- $<BUILD_INTERFACE :${CMAKE_HOME_DIRECTORY} /modules /native -ble /include >
100- $<BUILD_INTERFACE :${CMAKE_HOME_DIRECTORY} /3rdparty /json >
101- $<BUILD_INTERFACE :${CMAKE_HOME_DIRECTORY} /3rdparty /SimpleBLE /simpleble /include /simpleble >
102- )
103-
104- target_link_libraries (${GANGLION_NATIVE_LIB} PRIVATE simpleble )
105-
106- set_property (TARGET ${GANGLION_NATIVE_LIB} PROPERTY POSITION_INDEPENDENT_CODE ON )
107-
108- set_target_properties (${GANGLION_NATIVE_LIB}
109- PROPERTIES
110- ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
111- LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
112- RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
113- ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
114- LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
115- RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
116- ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
117- LIBRARY_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
118- RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY} /java-package/openbci_gui_helpers/src/main/resources/
119- )
10+ add_subdirectory (3rdparty/SimpleBLE/simpleble )
0 commit comments