Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
8994c50
Cleanup and update shared library
Nov 18, 2025
6a1011d
Cleanup and update modules
Nov 18, 2025
967924e
Align license file with SDK repo
Nov 18, 2025
4891977
Add missing repository files
Nov 18, 2025
652ae1c
Cleanup
Nov 18, 2025
a92d29e
Export found installed openDAQ globally
Nov 19, 2025
28dd43d
Remove useless calls from test init
Nov 19, 2025
8085ba8
Set PIC flag
Nov 19, 2025
f3213ac
Fix external dependencies
Nov 19, 2025
c43a466
Add tmp test workflow
Nov 19, 2025
fd495e3
Install mono on ubuntu-runner
Nov 19, 2025
4cee05d
Ignore warnings in ext deps
Nov 19, 2025
1f2597a
Try debug build in CI
Nov 19, 2025
d04a117
Align with opendaq updates
Dec 11, 2025
f90774f
Fix warning
Dec 11, 2025
1963854
Fix priveledges
Dec 11, 2025
bf1e8ed
Enable ctest and remove unused cpack
Dec 11, 2025
26f0299
Fix warning
Dec 11, 2025
d165df2
Revert "Fix warning"
Dec 11, 2025
3dac264
Remove unreacheable code
Dec 11, 2025
e39cf16
Run CI with installed openDAQ SDK
Dec 11, 2025
7549772
Remove commented code and trigger CI
Dec 11, 2025
26e40b4
Fix steps in CI
Dec 11, 2025
833020b
Rename
Dec 11, 2025
cb24c61
Remove redundant class
Dec 11, 2025
d4306cc
Add bigobj build flag
Dec 11, 2025
f458a7f
Use minimal preset to build opendaq
Dec 11, 2025
770c83d
Fix openDAQ install
Dec 11, 2025
fdf69ca
Fix
Dec 11, 2025
53a9e04
Fix build type
Dec 12, 2025
c75cb45
Change install path
Dec 12, 2025
7d0a600
Clean-up boost external dependency
Dec 16, 2025
5006a42
Retarget to other openDAQ branch
Dec 22, 2025
30cbbdf
Fix env var
Dec 22, 2025
2372bee
Fix branch name
Dec 22, 2025
419bb36
Align ext libs versions
Jan 8, 2026
db37c27
Add missing repo checkout to CI
Jan 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
BasedOnStyle: Chromium
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
#AllowAllArgumentsOnNextLine: 'false'
#AlignConsecutiveAssignments: None
#AlignConsecutiveDeclarations: None
AlignEscapedNewlines: Left
AlignOperands: true
AllowAllParametersOfDeclarationOnNextLine: true
#AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
#AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Allman
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: true
ColumnLimit: 140
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
IndentCaseLabels: true
IndentWidth: 4
KeepEmptyLinesAtTheStartOfBlocks: false
Language: Cpp
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
ObjCBlockIndentWidth: 4
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
#SortIncludes: Never
SpaceAfterCStyleCast: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpacesBeforeTrailingComments: 2
Standard: Auto
TabWidth: 4
UseTab: Never
#NamespaceMacros:
# - DECLARE_TEMPLATED_OPENDAQ_INTERFACE_T
# - DECLARE_TEMPLATED_OPENDAQ_INTERFACE_T_U
# - DECLARE_OPENDAQ_INTERFACE_EX
# - DECLARE_OPENDAQ_INTERFACE
FixNamespaceComments: false
#MacroBlockBegin: "^BEGIN_NAMESPACE_OPENDAQ$"
#MacroBlockEnd: "^END_NAMESPACE_OPENDAQ"
#IndentPPDirectives: BeforeHash
#SeparateDefinitionBlocks: Always
...
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
root = true

[{*.{cpp,h},CMakeLists.txt,*.rtclass,*.cmake,*.json}]
indent_style = space
indent_size = 4
tab_size = 4
insert_final_newline = true
trim_trailing_whitespace = true

[*.yml]
ident_style = space
ident_size = 2
tab_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* text=auto
*.[tT][xX][tT] text
*.[sS][hH] text eol=lf
99 changes: 99 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Build and Test

on:
pull_request:
types: [opened, reopened, synchronize, ready_for_review]

jobs:
build-and-test:

strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
generator: Ninja

- os: windows-latest
generator: "Visual Studio 17 2022"

runs-on: ${{ matrix.os }}

steps:
- name: Install additional dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get install -y --no-install-recommends mono-runtime libmono-system-json-microsoft4.0-cil libmono-system-data4.0-cil

- name: Checkout project repo
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.branch || github.event.client_payload.branch || github.ref }}

- name: Configure project with CMake
run: cmake -B build/output -S . -G "${{ matrix.generator }}" -DLT_STREAMING_MODULES_ENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Debug

- name: Build project with CMake
run: cmake --build build/output --config Debug

- name: Run project tests with CMake
run: ctest --test-dir build/output --output-on-failure -C Debug

install-build-and-test:

strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
generator: Ninja

- os: windows-latest
generator: "Visual Studio 17 2022"

runs-on: ${{ matrix.os }}
env:
INSTALL_PREFIX: ${{ github.workspace }}/opendaq_install

steps:
- name: Install additional dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get install -y --no-install-recommends mono-runtime libmono-system-json-microsoft4.0-cil libmono-system-data4.0-cil

- name: Checkout openDAQ
uses: actions/checkout@v4
with:
repository: openDAQ/openDAQ
ref: main
path: opendaq

- name: Configure, build and install openDAQ
working-directory: opendaq
run: |
cmake -B build/output -S . -G "${{ matrix.generator }}" -DOPENDAQ_ENABLE_TESTS=OFF -DCMAKE_BUILD_TYPE=Release
cmake --build build/output --config Release
cmake --install build/output --config Release --prefix "${{ env.INSTALL_PREFIX }}"

- name: Add DLL path (Windows only)
if: matrix.os == 'windows-latest'
run: |
echo "${{ env.INSTALL_PREFIX }}\\bin" >> $env:GITHUB_PATH

- name: Checkout project repo
uses: actions/checkout@v4
with:
path: module
ref: ${{ github.event.inputs.branch || github.event.client_payload.branch || github.ref }}

- name: Configure project with CMake
working-directory: module
run: cmake -B build/output -S . -G "${{ matrix.generator }}" -DLT_STREAMING_MODULES_ENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="${{ env.INSTALL_PREFIX }}"

- name: Build project with CMake
working-directory: module
run: cmake --build build/output --config Release

- name: Run project tests with CMake
working-directory: module
run: ctest --test-dir build/output --output-on-failure -C Release
46 changes: 46 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# file types
*.bin
*.bak
*.cache
*.check_cache
*.db
*.dcu
*.depend
*.exp
*.filters
*.idb
*.ilk
*.list
*.log
*.obj
*.orig
*.pdb
*.pyc
*.rule
*.rsm
*.stamp
*.stat
*.suo
*.tlog
*.user

# IDE files
.idea/
.idea_/
.vs/
.vscode/
__history/
__recovery/
__pycache__/

# build and backup folders
/_build*
/build*
/build_win
/cmake-build*
/out*
bckp

# cmake
CMakeUserPresets.json
CMakeSettings.json
64 changes: 64 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
cmake_minimum_required(VERSION 3.25)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# set project variables
set(REPO_NAME lt_streaming_modules)
set(REPO_OPTION_PREFIX LT_STREAMING_MODULES)

file(READ "repo_version" repo_version)
string(STRIP ${repo_version} repo_version)
string(REGEX REPLACE "^([0-9]+\\.[0-9]+\\.[0-9]+).*" "\\1" repo_version_major_minor_patch "${repo_version}")
set(REPO_VERSION "${repo_version_major_minor_patch}")

project(${REPO_NAME}
LANGUAGES CXX
VERSION ${REPO_VERSION}
)

# set SDK variables
set(OPENDAQ_SDK_NAME openDAQ)
set(OPENDAQ_SDK_TARGET_NAME opendaq)
set(OPENDAQ_SDK_TARGET_NAMESPACE daq)

file(READ "opendaq_version" sdk_version)
string(STRIP ${sdk_version} sdk_version)
string(REGEX REPLACE "^([0-9]+\\.[0-9]+\\.[0-9]+).*" "\\1" sdk_version_major_minor_patch "${sdk_version}")
set(OPENDAQ_SDK_VERSION "${sdk_version_major_minor_patch}")

list(APPEND CMAKE_MESSAGE_CONTEXT ${REPO_NAME})
set(CMAKE_MESSAGE_CONTEXT_SHOW ON CACHE BOOL "Show CMake message context")

list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

get_filename_component(ROOT_DIR ${CMAKE_SOURCE_DIR} REALPATH)
set(FETCHCONTENT_EXTERNALS_DIR ${ROOT_DIR}/build/__external CACHE PATH "FetchContent folder prefix")

add_definitions(-DFMT_HEADER_ONLY)

# options
option(${REPO_OPTION_PREFIX}_EXAMPLE_ENABLE_APP "Enable building example application" OFF)
option(${REPO_OPTION_PREFIX}_ENABLE_TESTS "Enable tests" OFF)

# Runtime and default 3rd party library linking options
option(${REPO_OPTION_PREFIX}_LINK_RUNTIME_STATICALLY "Link the C++ runtime staticaly (embedd it)" OFF)
option(${REPO_OPTION_PREFIX}_LINK_3RD_PARTY_LIBS_STATICALY "Link the 3rd party libraries staticaly (embedd it)" ON)

include(CommonUtils)
setup_repo(${REPO_OPTION_PREFIX})

if (${REPO_OPTION_PREFIX}_ENABLE_TESTS)
message(STATUS "Unit tests are ENABLED")
enable_testing()
endif()

add_subdirectory(external)
add_subdirectory(shared)
add_subdirectory(modules)
if (${REPO_OPTION_PREFIX}_ENABLE_TESTS)
# add_subdirectory(tests)
endif()
if (${REPO_OPTION_PREFIX}_EXAMPLE_ENABLE_APP)
# add_subdirectory(examples)
endif()
#add_subdirectory(docs) # FIXME no docs infrastructure to be handled by cmake
Loading
Loading