Archived
1
0
This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
controller/LoadFile/CMakeLists.txt
Jacob Alexander c4c1d0a2b8 Windows is now working with libusb1.0 for the teensy-loader-cli.
- Not tested yet, but should be working.
2014-04-18 13:16:47 -07:00

112 lines
1.8 KiB
CMake

###| CMAKE teensy-loader-cli |###
#
# Jacob Alexander 2014
# Written to replace the pjrc's kludey Makefiles
# (that require hand edits for different platforms)
#
# Released into the Public Domain
#
###
#| Windows / Cygwin Compatibility options
set( CMAKE_LEGACY_CYGWIN_WIN32 0 )
set( CMAKE_USE_RELATIVE_PATHS 1 )
###
# Project Description
#
#| Project
project( teensy-loader-cli )
#| Target Name (output name)
set( TARGET teensy-loader-cli )
#| General Settings
cmake_minimum_required( VERSION 2.8 )
###
# Source Defines
#
#| Sources
set( SRCS
teensy_loader_cli.c
)
###
# Platform Setup
#
list( APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR} ) # Use local find scripts
#| Linux/Windows - libusb
if( CMAKE_SYSTEM_NAME MATCHES "Linux" OR CMAKE_SYSTEM_NAME MATCHES "CYGWIN" )
# Find libusb (not 1.0)
find_package( LibUSB-1.0 REQUIRED )
# Defines
set( DEFINES -s -DUSE_LIBUSB )
# Include directories
set( INCLUDE_DIRS ${LIBUSB_INCLUDE_DIRS} )
# Libraries
set( LIBS ${LIBUSB_LIBRARIES} )
#| Mac OS X
elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
message( AUTHOR_WARNING "Not Tested...")
# Defines - XXX What is SDK?
set( DEFINES -DUSE_APPLE_IOKIT -isysroot ${SDK} -Wl,-syslibroot,${SDK} -framework IOKit -framework CoreFoundation )
#| BSD - NetBSD and OpenBSD
elseif( CMAKE_SYSTEM_NAME MATCHES "BSD" )
message( AUTHOR_WARNING "Not Tested...")
# Defines
set( DEFINES -s -DUSE_UHID )
#| Unregonized OS
else()
message( FATAL_ERROR "${CMAKE_SYSTEM_NAME}: OS Not Recognized..." )
endif()
###
# Defines
#
#| Default CFLAGS
set( CFLAGS -O2 -Wall -std=gnu99 )
add_definitions( ${CFLAGS} ${DEFINES} )
###
# Includes
#
#| Linux
include_directories( ${INCLUDE_DIRS} )
###
# Build Targets
#
#| Create the executable
add_executable( ${TARGET} ${SRCS} )
#| Link executable
target_link_libraries( ${TARGET} ${LIBS} )