22
33cmake_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++")
3434set (CMAKE_CXX_STANDARD 11)
3535set (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
4041if (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 )
4243else ()
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 )
4445endif ()
4546
4647
4748set_source_files_properties (${xcplib_SOURCES} PROPERTIES LANGUAGE C )
4849add_library (xcplib ${xcplib_SOURCES} )
49- target_include_directories (xcplib PUBLIC "${PROJECT_SOURCE_DIR } /src" )
50+ target_include_directories (xcplib PUBLIC "${PROJECT_ROOT } /src" )
5051target_compile_options (xcplib
5152 PRIVATE
5253 -Wall
@@ -60,26 +61,34 @@ target_compile_options(xcplib
6061# Example hello_xcp
6162set (hello_xcp_SOURCES examples/hello_xcp/src/main.c ${xcplib_SOURCES} )
6263add_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" )
6465target_link_libraries ( hello_xcp PRIVATE xcplib )
6566
6667# Example c_demo
6768set (c_demo_SOURCES examples/c_demo/src/main.c ${xcplib_SOURCES} )
6869add_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" )
7071target_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
8594endif ()
0 commit comments