Skip to content

Commit 5462011

Browse files
authored
xcplib optimizations and examples (#24)
xcplib: * struct_demo and multi_thread_demo example * Consumer spin lock optimizations * Multi threaded calibration segment RCU * Indexed event instances * Address extensions per DAQ list
1 parent 1b92a66 commit 5462011

File tree

26 files changed

+29122
-1031
lines changed

26 files changed

+29122
-1031
lines changed

xcplib/CMakeLists.txt

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
cmake_minimum_required(VERSION 3.5)
44

5-
project(xcplib VERSION 6.0 LANGUAGES C)
5+
project(xcplib VERSION 1.0.0 LANGUAGES C)
66

77

88

@@ -34,19 +34,20 @@ set(CMAKE_CXX_COMPILER "g++")
3434
set(CMAKE_CXX_STANDARD 11)
3535
set(CMAKE_CXX_STANDARD_REQUIRED True)
3636

37-
37+
set(PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR})
38+
message(STATUS "PROJECT_ROOT is: ${PROJECT_ROOT}")
3839

3940
# xcplib
4041
if(PLATFORM_64BIT)
41-
set(xcplib_SOURCES ./src/xcpAppl.c ./src/xcpLite.c ./src/xcpEthServer.c ./src/xcpEthTl.c ./src/xcpQueue64.c ./src/a2l.c ./src/platform.c )
42+
set(xcplib_SOURCES src/xcpAppl.c src/xcpLite.c src/xcpEthServer.c src/xcpEthTl.c src/xcpQueue64.c src/a2l.c src/platform.c )
4243
else()
43-
set(xcplib_SOURCES ./src/xcpAppl.c ./src/xcpLite.c ./src/xcpEthServer.c ./src/xcpEthTl.c ./src/xcpQueue32.c ./src/a2l.c ./src/platform.c )
44+
set(xcplib_SOURCES src/xcpAppl.c src/xcpLite.c src/xcpEthServer.c src/xcpEthTl.c src/xcpQueue32.c src/a2l.c src/platform.c )
4445
endif()
4546

4647

4748
set_source_files_properties(${xcplib_SOURCES} PROPERTIES LANGUAGE C)
4849
add_library(xcplib ${xcplib_SOURCES})
49-
target_include_directories(xcplib PUBLIC "${PROJECT_SOURCE_DIR}/src" )
50+
target_include_directories(xcplib PUBLIC "${PROJECT_ROOT}/src" )
5051
target_compile_options(xcplib
5152
PRIVATE
5253
-Wall
@@ -60,26 +61,34 @@ target_compile_options(xcplib
6061
# Example hello_xcp
6162
set(hello_xcp_SOURCES examples/hello_xcp/src/main.c ${xcplib_SOURCES} )
6263
add_executable(hello_xcp ${hello_xcp_SOURCES})
63-
target_include_directories(hello_xcp PUBLIC "${PROJECT_SOURCE_DIR}/src" )
64+
target_include_directories(hello_xcp PUBLIC "${PROJECT_ROOT}/src" )
6465
target_link_libraries( hello_xcp PRIVATE xcplib)
6566

6667
# Example c_demo
6768
set(c_demo_SOURCES examples/c_demo/src/main.c ${xcplib_SOURCES} )
6869
add_executable(c_demo ${c_demo_SOURCES})
69-
target_include_directories(c_demo PUBLIC "${PROJECT_SOURCE_DIR}/src" )
70+
target_include_directories(c_demo PUBLIC "${PROJECT_ROOT}/src" )
7071
target_link_libraries(c_demo PRIVATE xcplib)
7172

72-
if (WINDOWS)
73+
# Example struct_demo
74+
set(struct_demo_SOURCES examples/struct_demo/src/main.c ${xcplib_SOURCES} )
75+
add_executable(struct_demo ${struct_demo_SOURCES})
76+
target_include_directories(struct_demo PUBLIC "${PROJECT_ROOT}/src" )
77+
target_link_libraries(struct_demo PRIVATE xcplib)
7378

74-
else ()
79+
# Example multi_thread_demo
80+
set(multi_thread_demo_SOURCES examples/multi_thread_demo/src/main.c ${xcplib_SOURCES} )
81+
add_executable(multi_thread_demo ${multi_thread_demo_SOURCES})
82+
target_include_directories(multi_thread_demo PUBLIC "${PROJECT_ROOT}/src" )
83+
target_link_libraries(multi_thread_demo PRIVATE xcplib)
7584

76-
#set(THREADS_PREFER_PTHREAD_FLAG ON)
77-
#find_package(Threads REQUIRED)
78-
#target_link_libraries(c_demo PRIVATE Threads::Threads)
85+
if (WINDOWS)
7986

80-
#target_link_libraries(c_demo PRIVATE m)
87+
else ()
8188

82-
set_target_properties(c_demo PROPERTIES SUFFIX ".out")
83-
set_target_properties(hello_xcp PROPERTIES SUFFIX ".out")
89+
set_target_properties(c_demo PROPERTIES SUFFIX ".out")
90+
set_target_properties(hello_xcp PROPERTIES SUFFIX ".out")
91+
set_target_properties(struct_demo PROPERTIES SUFFIX ".out")
92+
set_target_properties(multi_thread_demo PROPERTIES SUFFIX ".out")
8493

8594
endif ()

xcplib/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build
33
cd build
4+
make clean
45
make
56
cd ..
67

0 commit comments

Comments
 (0)