forked from Rhoban/RhAL
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
81 lines (69 loc) · 1.82 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
###
### Rhoban Hardware Abstraction Layer library
### Rhoban 2015
###
cmake_minimum_required(VERSION 2.8)
project(RhAL)
set(LIB_SOURCES_DIRECTORY
"${CMAKE_CURRENT_SOURCE_DIR}/Lib")
set(BIN_SOURCES_DIRECTORY
"${CMAKE_CURRENT_SOURCE_DIR}/Bin")
set(TESTS_SOURCES_DIRECTORY
"${CMAKE_CURRENT_SOURCE_DIR}/Tests")
set(EXAMPLES_SOURCES_DIRECTORY
"${CMAKE_CURRENT_SOURCE_DIR}/Examples")
# Enable C++11
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -std=c++11")
# Enable compiler Warning
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -W -Wall")
# Include sources directory
include_directories(${LIB_SOURCES_DIRECTORY})
# Lib source files
set(LIB_SOURCES
Bus/Bus.cpp
Bus/SerialBus.cpp
Protocol/Protocol.cpp
Protocol/DynamixelV1.cpp
Protocol/FakeProtocol.cpp
Protocol/ProtocolFactory.cpp
)
# Prefix with lib directory path
foreach(SOURCE ${LIB_SOURCES})
set (PREFIXED_LIB_SOURCES
${PREFIXED_LIB_SOURCES}
${LIB_SOURCES_DIRECTORY}/${SOURCE}
)
endforeach()
# Tests source files
set(TESTS_SOURCES
testRegister
testJSON
testParameters
testDevice
testBaseManager
testManager
)
# Examples source files
set(EXAMPLES_SOURCES
example1
example2
example3
)
# Build the RhAL Library
add_library(LibRhAL ${PREFIXED_LIB_SOURCES})
target_link_libraries(LibRhAL serial pthread)
# Build the utility binary
add_executable(rhal ${BIN_SOURCES_DIRECTORY}/rhal.cpp)
target_link_libraries(rhal LibRhAL)
# Build all Tests binary
foreach(TEST ${TESTS_SOURCES})
add_executable(${TEST} "${TESTS_SOURCES_DIRECTORY}/${TEST}.cpp")
target_link_libraries(${TEST} LibRhAL)
endforeach()
# Build all Examples binary
foreach(EXAMPLE ${EXAMPLES_SOURCES})
add_executable(${EXAMPLE} "${EXAMPLES_SOURCES_DIRECTORY}/${EXAMPLE}.cpp")
target_link_libraries(${EXAMPLE} LibRhAL)
endforeach()