Create separate CMake toolchain file. Add references to toolchain file in each firmware CMakeLists.txt. I suspect this can be simpler still, just not sure how, yet...
This commit is contained in:
@ -21,6 +21,8 @@
|
|||||||
# Top directory CMake project for HackRF firmware
|
# Top directory CMake project for HackRF firmware
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project (hackrf_firmware_all)
|
project (hackrf_firmware_all)
|
||||||
|
|
||||||
add_subdirectory(blinky)
|
add_subdirectory(blinky)
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(blinky)
|
project(blinky)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -24,44 +24,8 @@
|
|||||||
|
|
||||||
# derived primarily from Makefiles in libopencm3
|
# derived primarily from Makefiles in libopencm3
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
|
||||||
|
|
||||||
enable_language(C CXX ASM)
|
enable_language(C CXX ASM)
|
||||||
|
|
||||||
include(CMakeForceCompiler)
|
|
||||||
|
|
||||||
set(CMAKE_SYSTEM_NAME Generic)
|
|
||||||
set(CMAKE_SYSTEM_PROCESSOR cortex-m4)
|
|
||||||
|
|
||||||
CMAKE_FORCE_C_COMPILER(arm-none-eabi-gcc GNU)
|
|
||||||
CMAKE_FORCE_CXX_COMPILER(arm-none-eabi-g++ GNU)
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${CMAKE_C_COMPILER} -print-file-name=libc.a
|
|
||||||
OUTPUT_VARIABLE CMAKE_INSTALL_PREFIX
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
get_filename_component(CMAKE_INSTALL_PREFIX
|
|
||||||
"${CMAKE_INSTALL_PREFIX}" PATH
|
|
||||||
)
|
|
||||||
get_filename_component(CMAKE_INSTALL_PREFIX
|
|
||||||
"${CMAKE_INSTALL_PREFIX}/.." REALPATH
|
|
||||||
)
|
|
||||||
set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH
|
|
||||||
"Install path prefix, prepended onto install directories.")
|
|
||||||
|
|
||||||
message(STATUS "Cross-compiling with the gcc-arm-embedded toolchain")
|
|
||||||
message(STATUS "Toolchain prefix: ${CMAKE_INSTALL_PREFIX}")
|
|
||||||
|
|
||||||
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
|
|
||||||
#set(CMAKE_LD ${CMAKE_INSTALL_PREFIX}/bin/ld CACHE INTERNAL "ld tool")
|
|
||||||
set(CMAKE_OBJCOPY ${CMAKE_INSTALL_PREFIX}/bin/objcopy CACHE INTERNAL "objcopy tool")
|
|
||||||
|
|
||||||
set(CMAKE_FIND_ROOT_PATH ${CMAKE_INSTALL_PREFIX})
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
|
|
||||||
SET(PATH_HACKRF ../..)
|
SET(PATH_HACKRF ../..)
|
||||||
SET(PATH_HACKRF_FIRMWARE ${PATH_HACKRF}/firmware)
|
SET(PATH_HACKRF_FIRMWARE ${PATH_HACKRF}/firmware)
|
||||||
SET(PATH_HACKRF_FIRMWARE_COMMON ${PATH_HACKRF_FIRMWARE}/common)
|
SET(PATH_HACKRF_FIRMWARE_COMMON ${PATH_HACKRF_FIRMWARE}/common)
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(hackrf_usb)
|
project(hackrf_usb)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(mixertx)
|
project(mixertx)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(sgpio-rx)
|
project(sgpio-rx)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(sgpio_test)
|
project(sgpio_test)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(sgpio_passthrough)
|
project(sgpio_passthrough)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(simpletx)
|
project(simpletx)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(spiflash)
|
project(spiflash)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(startup)
|
project(startup)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(startup_systick)
|
project(startup_systick)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
set(CMAKE_TOOLCHAIN_FILE ../toolchain-arm-cortex-m.cmake)
|
||||||
|
|
||||||
project(startup_systick_perfo_SPIFI)
|
project(startup_systick_perfo_SPIFI)
|
||||||
|
|
||||||
include(../hackrf-common.cmake)
|
include(../hackrf-common.cmake)
|
||||||
|
54
firmware/toolchain-arm-cortex-m.cmake
Normal file
54
firmware/toolchain-arm-cortex-m.cmake
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# Copyright 2014 Jared Boone <jared@sharebrained.com>
|
||||||
|
#
|
||||||
|
# This file is part of HackRF.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
|
||||||
|
set(CMAKE_SYSTEM_NAME Generic)
|
||||||
|
set(CMAKE_SYSTEM_VERSION 1)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||||
|
|
||||||
|
include(CMakeForceCompiler)
|
||||||
|
|
||||||
|
CMAKE_FORCE_C_COMPILER(arm-none-eabi-gcc GNU)
|
||||||
|
CMAKE_FORCE_CXX_COMPILER(arm-none-eabi-g++ GNU)
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_C_COMPILER} -print-file-name=libc.a
|
||||||
|
OUTPUT_VARIABLE CMAKE_INSTALL_PREFIX
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
get_filename_component(CMAKE_INSTALL_PREFIX
|
||||||
|
"${CMAKE_INSTALL_PREFIX}" PATH
|
||||||
|
)
|
||||||
|
get_filename_component(CMAKE_INSTALL_PREFIX
|
||||||
|
"${CMAKE_INSTALL_PREFIX}/.." REALPATH
|
||||||
|
)
|
||||||
|
set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH
|
||||||
|
"Install path prefix, prepended onto install directories.")
|
||||||
|
|
||||||
|
message(STATUS "Cross-compiling with the gcc-arm-embedded toolchain")
|
||||||
|
message(STATUS "Toolchain prefix: ${CMAKE_INSTALL_PREFIX}")
|
||||||
|
|
||||||
|
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
|
||||||
|
#set(CMAKE_LD ${CMAKE_INSTALL_PREFIX}/bin/ld CACHE INTERNAL "ld tool")
|
||||||
|
set(CMAKE_OBJCOPY ${CMAKE_INSTALL_PREFIX}/bin/objcopy CACHE INTERNAL "objcopy tool")
|
||||||
|
|
||||||
|
set(CMAKE_FIND_ROOT_PATH ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
Reference in New Issue
Block a user