Mercurial > louis > kiibohd-controller
annotate LoadFile/CMakeLists.txt @ 412:e7a3be42ae1e
Debug code for interconnect cable debugging
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Sat, 20 Feb 2016 13:27:49 -0800 |
parents | 3d21ecd24e31 |
children |
rev | line source |
---|---|
129
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
1 ###| CMAKE teensy-loader-cli |### |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
2 # |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
3 # Jacob Alexander 2014 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
4 # Written to replace the pjrc's kludey Makefiles |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
5 # (that require hand edits for different platforms) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
6 # |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
7 # Released into the Public Domain |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
8 # |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
9 ### |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
10 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
11 #| Windows / Cygwin Compatibility options |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
12 set( CMAKE_LEGACY_CYGWIN_WIN32 0 ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
13 set( CMAKE_USE_RELATIVE_PATHS 1 ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
14 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
15 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
16 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
17 ### |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
18 # Project Description |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
19 # |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
20 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
21 #| Project |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
22 project( teensy-loader-cli ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
23 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
24 #| Target Name (output name) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
25 set( TARGET teensy-loader-cli ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
26 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
27 #| General Settings |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
28 cmake_minimum_required( VERSION 2.8 ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
29 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
30 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
31 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
32 ### |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
33 # Source Defines |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
34 # |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
35 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
36 #| Sources |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
37 set( SRCS |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
38 teensy_loader_cli.c |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
39 ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
40 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
41 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
42 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
43 ### |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
44 # Platform Setup |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
45 # |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
46 list( APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR} ) # Use local find scripts |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
47 |
145
3d21ecd24e31
Windows is now working with libusb1.0 for the teensy-loader-cli.
Jacob Alexander <haata@kiibohd.com>
parents:
144
diff
changeset
|
48 #| Linux/Windows - libusb |
3d21ecd24e31
Windows is now working with libusb1.0 for the teensy-loader-cli.
Jacob Alexander <haata@kiibohd.com>
parents:
144
diff
changeset
|
49 if( CMAKE_SYSTEM_NAME MATCHES "Linux" OR CMAKE_SYSTEM_NAME MATCHES "CYGWIN" ) |
129
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
50 # Find libusb (not 1.0) |
144
35acc12e98d3
Porting teensy-loader-cli to use libusb-1.0 (from 0.1).
Jacob Alexander <haata@kiibohd.com>
parents:
143
diff
changeset
|
51 find_package( LibUSB-1.0 REQUIRED ) |
129
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
52 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
53 # Defines |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
54 set( DEFINES -s -DUSE_LIBUSB ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
55 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
56 # Include directories |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
57 set( INCLUDE_DIRS ${LIBUSB_INCLUDE_DIRS} ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
58 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
59 # Libraries |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
60 set( LIBS ${LIBUSB_LIBRARIES} ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
61 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
62 #| Mac OS X |
143
f2e4dd42bdab
More Windows compatibility build fixes
Jacob Alexander <haata@kiibohd.com>
parents:
129
diff
changeset
|
63 elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" ) |
129
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
64 message( AUTHOR_WARNING "Not Tested...") |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
65 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
66 # Defines - XXX What is SDK? |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
67 set( DEFINES -DUSE_APPLE_IOKIT -isysroot ${SDK} -Wl,-syslibroot,${SDK} -framework IOKit -framework CoreFoundation ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
68 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
69 #| BSD - NetBSD and OpenBSD |
143
f2e4dd42bdab
More Windows compatibility build fixes
Jacob Alexander <haata@kiibohd.com>
parents:
129
diff
changeset
|
70 elseif( CMAKE_SYSTEM_NAME MATCHES "BSD" ) |
129
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
71 message( AUTHOR_WARNING "Not Tested...") |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
72 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
73 # Defines |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
74 set( DEFINES -s -DUSE_UHID ) |
143
f2e4dd42bdab
More Windows compatibility build fixes
Jacob Alexander <haata@kiibohd.com>
parents:
129
diff
changeset
|
75 #| Unregonized OS |
f2e4dd42bdab
More Windows compatibility build fixes
Jacob Alexander <haata@kiibohd.com>
parents:
129
diff
changeset
|
76 else() |
f2e4dd42bdab
More Windows compatibility build fixes
Jacob Alexander <haata@kiibohd.com>
parents:
129
diff
changeset
|
77 message( FATAL_ERROR "${CMAKE_SYSTEM_NAME}: OS Not Recognized..." ) |
129
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
78 endif() |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
79 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
80 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
81 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
82 ### |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
83 # Defines |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
84 # |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
85 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
86 #| Default CFLAGS |
144
35acc12e98d3
Porting teensy-loader-cli to use libusb-1.0 (from 0.1).
Jacob Alexander <haata@kiibohd.com>
parents:
143
diff
changeset
|
87 set( CFLAGS -O2 -Wall -std=gnu99 ) |
129
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
88 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
89 add_definitions( ${CFLAGS} ${DEFINES} ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
90 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
91 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
92 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
93 ### |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
94 # Includes |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
95 # |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
96 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
97 #| Linux |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
98 include_directories( ${INCLUDE_DIRS} ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
99 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
100 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
101 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
102 ### |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
103 # Build Targets |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
104 # |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
105 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
106 #| Create the executable |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
107 add_executable( ${TARGET} ${SRCS} ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
108 |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
109 #| Link executable |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
110 target_link_libraries( ${TARGET} ${LIBS} ) |
0bad1499ec19
Adding teensy-loader-cli so it's not required.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
111 |