-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
107 lines (85 loc) · 3.18 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
cmake_minimum_required(VERSION 2.6)
get_filename_component(CURRENT_DIR ${CMAKE_CURRENT_LIST_FILE} PATH) # for cmake before 2.8.3
project(flasher_hard C CXX ASM)
if(CROSS)
set(CMAKE_C_COMPILER "i686-w64-mingw32.static-gcc")
set(CMAKE_CXX_COMPILER "i686-w64-mingw32.static-g++")
endif()
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
# set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/")
include_directories(${CURRENT_DIR})
if(WIN32)
set(PROJECT_PORT_DIR ${CURRENT_DIR}/port/windows)
set(CMAKE_C_FLAGS "-DPLATFORM_WIN32 -D_CRT_SECURE_NO_WARNINGS -std=c99 -Wall")
set(CMAKE_CXX_FLAGS "-DPLATFORM_WIN32 -D_CRT_SECURE_NO_WARNINGS -std=c++11 -Wall")
include_directories(${CURRENT_DIR}/port/windows/)
link_directories(${CURRENT_DIR}/port/windows/)
elseif(UNIX)
set(PROJECT_PORT_DIR ${CURRENT_DIR}/port/linux)
set(CMAKE_C_FLAGS "-DPLATFORM_LINUX -std=c99 -Wall")
set(CMAKE_CXX_FLAGS "-DPLATFORM_LINUX -std=c++11 -Wall")
include_directories(${CURRENT_DIR}/port/linux/ /usr/include/libusb-1.0/)
endif()
include_directories(${CURRENT_DIR}/include)
set(COMMON_SOURCES src/main.cpp src/myFTDI.cpp src/devices.cpp src/ihex.cpp src/xcpmaster.cpp
src/HardFlasher.cpp src/utils.cpp src/TRoboCOREHeader.cpp
src/console.cpp
${PROJECT_PORT_DIR}/xcptransport.cpp ${PROJECT_PORT_DIR}/timeutil.cpp)
if(EMBED_BOOTLOADERS)
set(COMMON_SOURCES ${COMMON_SOURCES} gen/bootloaders.cpp)
include_directories(${CURRENT_DIR}/gen)
add_definitions(-DEMBED_BOOTLOADERS)
endif()
if(WIN32)
set(TARGET_NAME core2-flasher)
add_executable(${TARGET_NAME} ${COMMON_SOURCES})
target_link_libraries(${TARGET_NAME}
ftdi1 usb-1.0 pthread ws2_32)
add_definitions(-DWIN32)
elseif(UNIX)
set(TARGET_NAME core2-flasher)
add_definitions(-DUNIX)
include_directories(third-party/libusb/libusb)
if(MAC)
set(OS_SOURCES
third-party/libusb/libusb/os/darwin_usb.c)
else()
set(OS_SOURCES
third-party/libusb/libusb/os/linux_netlink.c
third-party/libusb/libusb/os/linux_usbfs.c)
endif()
add_executable(${TARGET_NAME}
${COMMON_SOURCES}
port/linux/ftdi.c port/linux/ftdi_stream.c
${OS_SOURCES}
third-party/libusb/libusb/os/poll_posix.c
third-party/libusb/libusb/os/threads_posix.c
third-party/libusb/libusb/core.c
third-party/libusb/libusb/descriptor.c
third-party/libusb/libusb/hotplug.c
third-party/libusb/libusb/io.c
third-party/libusb/libusb/strerror.c
third-party/libusb/libusb/sync.c)
if(MAC)
set (CMAKE_EXE_LINKER_FLAGS "-framework CoreFoundation -framework IOKit")
else()
target_link_libraries(${TARGET_NAME}
pthread rt)
endif()
endif()
option(X86 "32 bit executable" OFF)
if(X86)
if(MULTILIB_HACK STREQUAL "")
set_target_properties(${TARGET_NAME} PROPERTIES
COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
else()
# gcc-multilib conficts with cross-compilers on old Debians
set_target_properties(${TARGET_NAME} PROPERTIES
COMPILE_FLAGS "-m32"
LINK_FLAGS "-m32 -B /usr/lib/gcc/${MULTILIB_HACK} -L /usr/lib/gcc/${MULTILIB_HACK}")
endif()
endif()
if(DEBUG)
set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_FLAGS "-g" LINK_FLAGS "-g")
endif()