summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* cmake: Drop all sub-folder CXX settings. Use root CMakeLists.txt global ↵Sven Gothel2020-10-201-0/+4
| | | | settings for all, avoiding confusion.
* Build: Separate GCC sanitize flags from DEBUG=ON, enable via INSTRUMENTATION=ONSven Gothel2020-10-181-1/+6
|
* GCC: Add -Wcast-align=strict and cleanup -Wformat flags, also add DEBUG ↵Sven Gothel2020-10-171-3/+4
| | | | -fsanitize-address-use-after-scope
* Add DEBUG flag '-fsanitize-address-use-after-scope'Sven Gothel2020-10-171-1/+1
|
* CMakeLists.txt: Fix setting CMAKE_CXX_FLAGS based on CMAKE_COMPILER_IS_GNUCC ↵Sven Gothel2020-10-171-22/+27
| | | | | | | | | | | and DEBUG For GCC always enable all Warnings possible, supporting -Werror (Warning == Error). in DEBUG mode enable '-fstack-protector-strong -fstack-check' and all non-thread sanitizer: '-fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined -fsanitize=leak'. Notable: -fsanitize=thread TSAN's lacks ability to properly handle GCC's atomic macros (like helgrind etc), can't check SC-DRF!
* Require cmake >= 3.13 and use LANGUAGES C CXX (JAVA is specified later on)Sven Gothel2020-10-171-2/+2
|
* Shorten __FILE__ using gcc via '-fmacro-prefix-map=olddir=newdir' to reduce ↵Sven Gothel2020-10-081-0/+5
| | | | memory footprint
* CMAKE_CXX_FLAGS_RELEASE: Add -Wextra and -O3Sven Gothel2020-09-141-1/+1
|
* cmake: CMAKE_SHARED_LINKER_FLAGS += '-latomic' to fix gcc-8 on Raspberry: ↵Sven Gothel2020-08-251-1/+2
| | | | | | | | | | | | | | | undefined reference to `__atomic_store_8' CMAKE_SHARED_LINKER_FLAGS and CMAKE_EXE_LINKER_FLAGS must include the atomic lib for gcc-8 on Raspberry (buster) (Added shares linker flags) Tests on bullseye amd64 didn't show sideeffects yet. Bring up test w/ ScannerTinyB10.jar is finally successful again. "sh ../scripts/run-java-scanner10.sh -mac C0:26:DA:01:DA:B1" Raspberry Buster dist-upgrade 2020-08-25 04:13:00
* cmake: CMAKE_EXE_LINKER_FLAGS += '-latomic' to fix gcc-8 on Raspberry: ↵Sven Gothel2020-08-251-0/+4
| | | | undefined reference to `__atomic_store_8'
* cmake: Add variable/define 'SKIP_TINYB': Allow to not build the tinyb native ↵Sven Gothel2020-08-251-2/+4
| | | | | | library. Building the native lib on slow systems becomes a burden, hence skip if not required.
* cmake: determine OS_AND_ARCH for potential arch dependent subfolderSven Gothel2020-08-251-1/+20
|
* Fix general Doxygen DocumentationSven Gothel2020-05-181-1/+1
| | | | | | | | | | | - Ensure C++ namespace gets properly documented -- Added tinyb namespace doc in BluetoothAdapter.hpp (first file) -- Added direct_bt namespace doc in ATTPDUTypes.hpp (first file) Showing hierarchy and hinting to details and coverage. - Fix CMakeList for doc target and some doxygen config finetuning
* Implement direct_bt: Direct Bluetooth access via Linux's Kernel BlueZ ↵Sven Gothel2020-04-091-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | protocol stack w/o D-Bus bluetoothd. By dropping BlueZ userspace D-Bus bluetoothd, we target high-performance reliable bluetooth support with least dependencies for embedded device configurations. See COPYING, describing which Linux Kernel BlueZ IOCTL information has been included in the source tree. We claim Linus Torvalds's Linux Kernel license exception regarding kernel syscalls (ioctl): <https://github.com/torvalds/linux/blob/master/LICENSES/exceptions/Linux-syscall-note> and hence maintain this project's license. The new direct_bt feature set is organized as follows - include/cppunit - api/direct_bt - api/ieee11073 - src/direct_bt - examples/direct_bt Note that the C++ direct_bt layer is not backward compatible to tinyb. Since the Java layer still needs to be completed, it has to be seen whether we will achieve compatibility or drop the original D-Bus tinyb module altogether in favor of a more streamlined API and implementation. Current state allows scanning for LE devices, connecting and parsing GATT plus receiving notifications and indications. See examples/direct_bt_scanner/dbt_scanner.cpp. The Linux Kernel BlueZ is configured via module MgmtComm.[hpp/cpp]
* C++ tinyb_hci: Working HCIScanner showing AD packets, demonstrating new HCI ↵Sven Gothel2020-02-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | classes See scripts/build-x86_64.sh and README.md for build instructions. See scripts/run-hci_scanner.sh to start new HCI scanner (C++). New HCI C++ implementation redised in libtinyb_hci.so w/o GLIB/DBus dependencies, but 'libbluetooth.so' dependency. Following Class datastructures are complete: - HCIUtil: Exception types, uint128_t and endian conversions - General UUID interface and its efficient UUID16, UUID32 + UUID128 implementation. Conversion 'toString', respecting endianess, and UUID* -> UUID128 conversion. Requird member comparison operations due to using interface - HCIAdapter with its opened HCISession, as well as its discovered HCIDevices - HCIAdapter discover includes multiple advertising AD records, up to 25 according to the spec. - HCIAdapter parses full AD segment. TODO: Handle few more AD types API/Impl Details: - Datastructures utilize 'vector<shares_ptr<T>>' collections. - Most attributes are specified 'const' -> immutable for efficancy - Convenient collection access member operations - etc .. RESULTS: - Fast AD scanning of multiple devices w/ UUID and RSSI - Proper integration into tinyb project TODO: - Handle few more AD types - Test multiple parallel HCISession from HCIAdapter - HCIAdapter.connect() - Represent GATT Service, Characteristics and Description - Catch up with the Java binding step by step
* Update DocumentationSven Gothel2020-02-091-1/+1
|
* Update tinyb2.jar's manifest: Add 'Implementation-*' using ↵Sven Gothel2020-02-091-1/+2
| | | | | | get_git_head_revision; Vendor of TinyB-2 is ZAFENA AB Additionally correct manifest's package loction for bundle etc.
* Java Refactory: Expose intefaces via org.tinyb.* and D-Bus implementation ↵Sven Gothel2020-02-091-3/+3
| | | | | | | | | | | | | | | | | | | | via tinyb.dbus.* Allows alternative interface implementations and delegated wrapper implementations for debug and tracing. Original D-Bus implementation can be retrieved via: 'BluetoothManager org.tinyb.BluetoothFactory.getDBusBluetoothManager()' A HCI native implementation will follow up w/o use of D-Bus. Otherwise the Java API is unchanged and this tinyb can replace previous implementation. Due to the major API change (despite interface is unchanged but BluetoothManager instantiation) the jar file has been renamed from 'tinyb.jar' to 'tinyb2.jar'. Same goes with the version number, which will be set to 'v2.0.0'. The native library and class definition is kept unchanged using the original names so far.
* Changed examples to a cmake option rather than being built by defaultChuck Claunch2017-06-071-1/+4
| | | | Signed-off-by: Chuck Claunch <[email protected]>
* Release 0.5.0v0.5.00.5.0Petre Eftime2016-07-111-1/+1
| | | | Signed-off-by: Petre Eftime <[email protected]>
* Update to v0.4.3v0.4.3Petre Eftime2016-05-231-1/+1
| | | | Signed-off-by: Petre Eftime <[email protected]>
* cmake: Update dirty version to v0.4.2Andrei Vasiliu2016-05-181-1/+1
| | | | Signed-off-by: Andrei Vasiliu <[email protected]>
* Downgrade required cmake versionAlan2016-05-091-1/+1
| | | | | | Downgraded minimum required cmake version to 3.0.0, in order for systems shipping older cmake versions (namely, Raspbian 8) to build the project.
* Add OSGI manifest metadataAlan2016-05-051-0/+1
| | | | | | | | | | | | | Added OSGI metadata to the manifest, so the library can be deployed in OSGI environments. The headers where first generated with the bnd tool, then manually copied inside the manifest template file with the appropriate variable substitutions. Also added a timestamp variable (BUILD_TSTAMP) in the main CmakeLists.txt for use in the manifest file (and elsewhere, if needed). Signed-off-by: Alan Alberghini <[email protected]> [closes #23]
* Add additional version information, including in jar manifestPetre Eftime2016-05-041-0/+2
| | | | Signed-off-by: Petre Eftime <[email protected]>
* Fix incorrect pointer in read_value, get_valuePetre Eftime2016-04-201-1/+1
| | | | Signed-off-by: Petre Eftime <[email protected]>
* Release 0.4.0v0.4.0Petre Eftime2016-03-241-1/+1
| | | | Signed-off-by: Petre Eftime <[email protected]>
* Add glib version requirements, update README.mdPetre Eftime2016-02-191-3/+3
| | | | Signed-off-by: Petre Eftime <[email protected]>
* cmake: Updated dirty version to 0.3.0Andrei Vasiliu2016-02-031-1/+1
| | | | Signed-off-by: Andrei Vasiliu <[email protected]>
* cmake: Fixed version nameStefan Andritoiu2016-01-251-1/+2
| | | | Signed-off-by: Stefan Andritoiu <[email protected]>
* Build documentation with make docPetre Eftime2016-01-131-1/+31
| | | | Signed-off-by: Petre Eftime <[email protected]>
* Java: Added cmake to Java bindings and deleted JNI header filesAndrei Vasiliu2016-01-121-0/+5
| | | | | | | Cmake also generates JNI header files, therefore they are no longer required to be in the repo. Signed-off-by: Andrei Vasiliu <[email protected]>
* Java: Added Java APIAndrei Vasiliu2016-01-121-6/+5
| | | | Signed-off-by: Andrei Vasiliu <[email protected]>
* Version 0.2.0v0.2.0Petre Eftime2015-11-271-0/+78
Signed-off-by: Petre Eftime <[email protected]>