Skip to content

Commit 2920b2e

Browse files
authored
Merge pull request #30 from choco-technologies/copilot/update-interface-for-dmod-module
Add DMOD_MODULE mode support to dmosi
2 parents a022537 + a063543 commit 2920b2e

2 files changed

Lines changed: 59 additions & 25 deletions

File tree

.github/workflows/build.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,23 @@ jobs:
6161
test -f build/libdmosi.a
6262
echo "✓ libdmosi.a created successfully with DMOSI_DONT_IMPLEMENT_DMOD_API=ON"
6363
64+
- name: Clean for module mode build
65+
run: |
66+
rm -rf build
67+
68+
- name: Configure CMake (DMOD_MODULE mode)
69+
run: |
70+
mkdir -p build
71+
cd build
72+
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DDMOD_MODE=DMOD_MODULE ..
73+
74+
- name: Build (DMOD_MODULE mode)
75+
run: |
76+
cd build
77+
make -j$(nproc)
78+
79+
- name: Verify module mode build (no static library)
80+
run: |
81+
test ! -f build/libdmosi.a
82+
echo "✓ libdmosi.a not created in DMOD_MODULE mode (expected)"
83+

CMakeLists.txt

Lines changed: 39 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -51,41 +51,55 @@ else()
5151
message(STATUS "dmod target already exists, skipping FetchContent")
5252
endif()
5353

54+
include(${DMOD_DIR}/paths.cmake)
55+
5456
# ======================================================================
55-
# DMOD OSI Library
57+
# DMOD OSI Interface Library
5658
# ======================================================================
5759
set(MODULE_NAME dmosi)
58-
add_library(${MODULE_NAME} STATIC
59-
src/dmosi.c
60-
)
6160

62-
target_compile_definitions(${MODULE_NAME}
63-
PRIVATE
64-
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API}>:DMOSI_DONT_IMPLEMENT_DMOD_API>
65-
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API_MUTEX}>:DMOSI_DONT_IMPLEMENT_DMOD_API_MUTEX>
66-
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API_ENV}>:DMOSI_DONT_IMPLEMENT_DMOD_API_ENV>
67-
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API_PROC}>:DMOSI_DONT_IMPLEMENT_DMOD_API_PROC>
68-
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API_TIME}>:DMOSI_DONT_IMPLEMENT_DMOD_API_TIME>
69-
DMOSI_VERSION="${PROJECT_VERSION}"
61+
add_library(dmosi_if INTERFACE)
62+
target_include_directories(dmosi_if
63+
INTERFACE
64+
${CMAKE_CURRENT_SOURCE_DIR}/include
7065
)
7166

72-
target_include_directories(${MODULE_NAME}
73-
PUBLIC
74-
${CMAKE_CURRENT_SOURCE_DIR}/include
75-
)
67+
# ======================================================================
68+
# DMOD OSI Library (system mode only)
69+
# ======================================================================
70+
if(DMOD_SYSTEM)
71+
add_library(${MODULE_NAME} STATIC
72+
src/dmosi.c
73+
)
7674

77-
target_link_libraries(${MODULE_NAME}
78-
PRIVATE
79-
dmod_inc
75+
target_compile_definitions(${MODULE_NAME}
76+
PRIVATE
77+
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API}>:DMOSI_DONT_IMPLEMENT_DMOD_API>
78+
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API_MUTEX}>:DMOSI_DONT_IMPLEMENT_DMOD_API_MUTEX>
79+
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API_ENV}>:DMOSI_DONT_IMPLEMENT_DMOD_API_ENV>
80+
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API_PROC}>:DMOSI_DONT_IMPLEMENT_DMOD_API_PROC>
81+
$<$<BOOL:${DMOSI_DONT_IMPLEMENT_DMOD_API_TIME}>:DMOSI_DONT_IMPLEMENT_DMOD_API_TIME>
82+
DMOSI_VERSION="${PROJECT_VERSION}"
8083
)
8184

82-
# Enable coverage for dmosi library if requested
83-
if(ENABLE_COVERAGE)
84-
target_compile_options(${MODULE_NAME} PRIVATE --coverage)
85-
target_link_options(${MODULE_NAME} PRIVATE --coverage)
86-
endif()
85+
target_include_directories(${MODULE_NAME}
86+
PUBLIC
87+
${CMAKE_CURRENT_SOURCE_DIR}/include
88+
)
89+
90+
target_link_libraries(${MODULE_NAME}
91+
PRIVATE
92+
dmod_inc
93+
)
94+
95+
# Enable coverage for dmosi library if requested
96+
if(ENABLE_COVERAGE)
97+
target_compile_options(${MODULE_NAME} PRIVATE --coverage)
98+
target_link_options(${MODULE_NAME} PRIVATE --coverage)
99+
endif()
87100

88-
create_library_makefile(${MODULE_NAME})
101+
create_library_makefile(${MODULE_NAME})
102+
endif()
89103

90104
# ======================================================================
91105
# Tests

0 commit comments

Comments
 (0)