Subversion Repositories MK-Marlin

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 ron 1
cmake_minimum_required(VERSION 2.8)
2
#====================================================================#
3
# Usage under Linux:                                                 #
4
#                                                                    #
5
#    From Marlin/buildroot/share/cmake folder:                       #
6
#        mkdir -p build && cd build                                  #
7
#        cmake ..                                                    #
8
#        make                                                        #
9
#                                                                    #
10
# Usage under Windows:                                               #
11
#                                                                    #
12
#    From Marlin/buildroot/share/cmake folder:                       #
13
#        mkdir build && cd build                                     #
14
#        cmake -G"Unix Makefiles" ..                                 #
15
#        make                                                        #
16
#====================================================================#
17
 
18
#====================================================================#
19
# Download marlin-cmake scriptfiles if not already installed         #
20
# and add the path to the module path                                #
21
#====================================================================#
22
 
23
set(SCRIPT_BRANCH 1.0.2) #Set to wanted marlin-cmake release tag or branch
24
 
25
if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/marlin-cmake)
26
 
27
	file(DOWNLOAD https://github.com/tohara/marlin-cmake/archive/${SCRIPT_BRANCH}.tar.gz
28
				  ${CMAKE_CURRENT_LIST_DIR}/marlin-cmake-src.tar.gz SHOW_PROGRESS)
29
 
30
	execute_process(COMMAND ${CMAKE_COMMAND} -E tar -xvf ${CMAKE_CURRENT_LIST_DIR}/marlin-cmake-src.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
31
 
32
	file(RENAME ${CMAKE_CURRENT_LIST_DIR}/marlin-cmake-${SCRIPT_BRANCH} ${CMAKE_CURRENT_LIST_DIR}/marlin-cmake)
33
	file(REMOVE ${CMAKE_CURRENT_LIST_DIR}/marlin-cmake-src.tar.gz)
34
 
35
 
36
endif()
37
 
38
if(WIN32 AND NOT EXISTS ${CMAKE_BINARY_DIR}/make.exe)
39
    file(COPY ${CMAKE_CURRENT_LIST_DIR}/marlin-cmake/resources/make.exe DESTINATION ${CMAKE_BINARY_DIR}/)
40
endif()
41
 
42
set(CMAKE_MODULE_PATH  ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/marlin-cmake/modules)
43
 
44
#====================================================================#
45
#  Custom path to Arduino SDK can be set here.                       #
46
#  It can also be set from command line. eg.:                        #
47
#  cmake .. -DARDUINO_SDK_PATH="/path/to/arduino-1.x.x"              #
48
#====================================================================#
49
#set(ARDUINO_SDK_PATH ${CMAKE_CURRENT_LIST_DIR}/arduino-1.6.8)
50
#set(ARDUINO_SDK_PATH /home/tom/git/BigBox-Dual-Marlin/ArduinoAddons/Arduino_1.6.x)
51
#set(ARDUINO_SDK_PATH  /home/tom/test/arduino-1.6.11)
52
#====================================================================#
53
#  Set included cmake files                                          #
54
#====================================================================#
55
include(Arduino_SDK) # Find the intallpath of Arduino SDK
56
include(marlin_cmake_functions)
57
 
58
#====================================================================#
59
#  Set toolchain file for arduino                                    #
60
#====================================================================#
61
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/marlin-cmake/toolchain/ArduinoToolchain.cmake) # Arduino Toolchain
62
 
63
#====================================================================#
64
#  Setup Project                                                     #
65
#====================================================================#
66
project(Marlin C CXX)
67
 
68
#====================================================================#
69
#  Register non standard hardware                                    #
70
#====================================================================#
71
#register_hardware_platform(/home/tom/test/Sanguino)
72
 
73
#====================================================================#
74
#  Print any info                                                    #
75
#  print_board_list()                                                #
76
#  print_programmer_list()                                           #
77
#  print_board_settings(mega)                                        #
78
#====================================================================#
79
print_board_list()
80
print_programmer_list()
81
 
82
 
83
#====================================================================#
84
#  Get motherboard settings from Configuration.h                     #
85
#  setup_motherboard(TARGET Marlin_src_folder)                       #
86
#  Returns ${TARGET}_BOARD and ${TARGET}_CPU                         #
87
#                                                                    #
88
#  To set it manually:                                               #
89
#    set(${PROJECT_NAME}_BOARD mega)                                 #
90
#    set(${PROJECT_NAME}_CPU atmega2560)                             #
91
#====================================================================#
92
setup_motherboard(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/../../../Marlin)
93
 
94
#====================================================================#
95
#  Setup all source files                                            #
96
#  Incude Marlin.ino to compile libs not included in *.cpp files     #
97
#====================================================================#
98
 
99
file(GLOB SOURCES "../../../Marlin/*.cpp")
100
set(${PROJECT_NAME}_SRCS "${SOURCES};../../../Marlin/Marlin.ino")
101
 
102
#====================================================================#
103
#  Define the port for uploading code to the Arduino                 #
104
#  Can be set from commandline with:                                 #
105
#    cmake .. -DUPLOAD_PORT=/dev/ttyACM0                             #
106
#====================================================================#
107
if(UPLOAD_PORT)
108
    set(${PROJECT_NAME}_PORT ${UPLOAD_PORT})
109
else()
110
    set(${PROJECT_NAME}_PORT /dev/ttyACM0)
111
endif()
112
 
113
#====================================================================#
114
#  Register arduino libraries not included in SDK                    #
115
#====================================================================#
116
#link_directories(/home/tom/test/ArduinoAddons) #U8glib
117
#set(${PROJECT_NAME}_ARDLIBS U8glib)
118
#set(U8glib_RECURSE True)
119
 
120
#====================================================================#
121
# Command to generate code arduino firmware (.hex file)              #
122
#====================================================================#
123
generate_arduino_firmware(${PROJECT_NAME})