1
- #=============================================================================#
2
- # Author: Sebastian Rohde #
3
- # Date: 30.08.2011 #
4
- #=============================================================================#
1
+ cmake_minimum_required (VERSION 2.6)
5
2
3
+ set (CMAKE_SOURCE_DIR "${CMAKE_SOURCE_DIR} /../" )
4
+ set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR} /cmake/modules)
5
+ set (CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR} /cmake/toolchains/Arduino.cmake)
6
6
7
- #====================================================================#
8
- # Settings #
9
- #====================================================================#
10
- set (FIRMWARE_NAME apo)
7
+ string (REGEX REPLACE ".*/" "" PROJECT_NAME ${CMAKE_CURRENT_SOURCE_DIR} )
8
+ project (${PROJECT_NAME} C CXX)
9
+ set (FIRMWARE_NAME ${PROJECT_NAME} )
11
10
12
- set ( ${FIRMWARE_NAME} _BOARD ${BOARD} ) # Arduino Target board
11
+ set (CMAKE_CXX_SOURCE_FILE_EXTENSIONS pde)
13
12
14
- set (${FIRMWARE_NAME} _SKETCHES
15
- apo.pde
16
- ) # Firmware sketches
17
-
18
- set (${FIRMWARE_NAME} _SRCS
19
- ) # Firmware sources
20
-
21
- set (${FIRMWARE_NAME} _HDRS
22
- ControllerPlane.h
23
- ControllerQuad.h
24
- PlaneEasystar.h
25
- QuadArducopter.h
26
- QuadMikrokopter.h
27
- ) # Firmware sources
13
+ find_package (Arduino 22 REQUIRED)
28
14
29
- set (${FIRMWARE_NAME} _LIBS
30
- m
31
- APO
32
- FastSerial
33
- AP_Common
34
- GCS_MAVLink
35
- AP_GPS
36
- APM_RC
37
- AP_DCM
38
- AP_ADC
39
- AP_Compass
40
- AP_IMU
41
- AP_RangeFinder
42
- APM_BMP085
43
- ModeFilter
44
- )
45
-
15
+ if (NOT DEFINED BOARD)
16
+ message (STATUS "board not defined, assuming mega, use cmake -DBOARD=mega2560 , etc. to specify" )
17
+ set (BOARD "mega" )
18
+ endif ()
19
+ message (STATUS "Board configured as: ${BOARD} " )
46
20
47
- #${CONSOLE_PORT}
48
- set (${FIRMWARE_NAME } _PORT COM2) # Serial upload port
49
- set (${FIRMWARE_NAME } _SERIAL putty -serial COM2 -sercfg 57600,8,n,1,X ) # Serial terminal cmd
21
+ # need to configure based on host operating system
22
+ set (${PROJECT_NAME } _PORT COM2)
23
+ set (${PROJECT_NAME } _SERIAL putty -serial COM2 -sercfg 57600,8,n,1,X )
50
24
51
25
include_directories (
26
+ ${ARDUINO_LIBRARIES_PATH} /Wire
52
27
${CMAKE_SOURCE_DIR} /libraries/APO
53
28
${CMAKE_SOURCE_DIR} /libraries/AP_Common
54
29
${CMAKE_SOURCE_DIR} /libraries/FastSerial
@@ -63,12 +38,34 @@ ${CMAKE_SOURCE_DIR}/libraries/APM_RC
63
38
${CMAKE_SOURCE_DIR} /libraries/GCS_MAVLink
64
39
${CMAKE_SOURCE_DIR} /libraries/APM_BMP085
65
40
)
66
- #====================================================================#
67
- # Target generation #
68
- #====================================================================#
69
- generate_arduino_firmware(${FIRMWARE_NAME} )
41
+
42
+ add_subdirectory (../libraries "${CMAKE_CURRENT_BINARY_DIR} /libs" )
43
+ file (WRITE ${PROJECT_NAME} .cpp "// Do not edit" )
44
+ set (${PROJECT_NAME} _BOARD ${BOARD} )
45
+ file (GLOB ${PROJECT_NAME} _SKETCHES *.pde)
46
+ file (GLOB ${PROJECT_NAME} _SRCS *.cpp)
47
+ file (GLOB ${PROJECT_NAME} _HDRS *.h)
48
+ set (${PROJECT_NAME} _LIBS
49
+ c
50
+ m
51
+ APO
52
+ FastSerial
53
+ AP_Common
54
+ GCS_MAVLink
55
+ AP_GPS
56
+ APM_RC
57
+ AP_DCM
58
+ AP_ADC
59
+ AP_Compass
60
+ AP_IMU
61
+ AP_RangeFinder
62
+ APM_BMP085
63
+ ModeFilter
64
+ )
65
+
66
+ generate_arduino_firmware(${PROJECT_NAME} )
70
67
71
68
install (FILES
72
- ${CMAKE_CURRENT_BINARY_DIR} /${FIRMWARE_NAME } .hex
69
+ ${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME } .hex
73
70
DESTINATION bin
74
71
)
0 commit comments