Allow building with OpenEmbedded

This commit is contained in:
Carles Fernandez 2016-12-20 02:35:52 +01:00
parent 54bb964a89
commit 4a02a1d294
2 changed files with 30 additions and 13 deletions

View File

@ -293,7 +293,11 @@ endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
# Check if the compiler defines the architecture as ARM # Check if the compiler defines the architecture as ARM
################################################################################ ################################################################################
if(NOT OS_IS_MACOSX) if(NOT OS_IS_MACOSX)
include(TestForARM) if(CMAKE_CROSSCOMPILING)
set(IS_ARM TRUE)
else(CMAKE_CROSSCOMPILING)
include(TestForARM)
endif(CMAKE_CROSSCOMPILING)
endif(NOT OS_IS_MACOSX) endif(NOT OS_IS_MACOSX)
@ -458,8 +462,12 @@ if(NOT VOLK_GNSSSDR_FOUND)
message(STATUS " volk_gnsssdr will be built along with gnss-sdr when doing 'make'") message(STATUS " volk_gnsssdr will be built along with gnss-sdr when doing 'make'")
set(CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(C_FLAGS "${CMAKE_C_FLAGS} -std=c11") set(C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
set(VOLK_GNSSSDR_CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} if(CMAKE_CROSSCOMPILING)
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} set(VOLK_GNSSSDR_COMPILER "")
else(CMAKE_CROSSCOMPILING)
set(VOLK_GNSSSDR_COMPILER "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}")
endif(CMAKE_CROSSCOMPILING)
set(VOLK_GNSSSDR_CMAKE_ARGS ${VOLK_GNSSSDR_COMPILER}
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install
-DENABLE_STATIC_LIBS=ON -DENABLE_STATIC_LIBS=ON
-DENABLE_PROFILING=${ENABLE_PROFILING} -DENABLE_PROFILING=${ENABLE_PROFILING}
@ -467,9 +475,12 @@ if(NOT VOLK_GNSSSDR_FOUND)
-DCMAKE_C_FLAGS=${C_FLAGS} -DCMAKE_C_FLAGS=${C_FLAGS}
${STRIP_VOLK_GNSSSDR_PROFILE} ${STRIP_VOLK_GNSSSDR_PROFILE}
${USE_THIS_PYTHON} ) ${USE_THIS_PYTHON} )
if(CMAKE_TOOLCHAIN_FILE) if(EXISTS $ENV{OECORE_TARGET_SYSROOT})
set(VOLK_GNSSSDR_CMAKE_ARGS ${VOLK_GNSSSDR_CMAKE_ARGS} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) set(VOLK_GNSSSDR_CMAKE_ARGS ${VOLK_GNSSSDR_CMAKE_ARGS}
endif(CMAKE_TOOLCHAIN_FILE) -DENABLE_ORC=OFF
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchains/oe-sdk_cross.cmake
-DCROSSCOMPILE_MULTILIB=TRUE )
endif(EXISTS $ENV{OECORE_TARGET_SYSROOT})
ExternalProject_Add(volk_gnsssdr_module ExternalProject_Add(volk_gnsssdr_module
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module PREFIX ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
@ -1203,12 +1214,14 @@ if (NOT ARCH_COMPILER_FLAGS)
else(OS_IS_MACOSX) else(OS_IS_MACOSX)
if(NOT ${ENABLE_GENERIC_ARCH}) if(NOT ${ENABLE_GENERIC_ARCH})
if(IS_ARM) # ARM-specific options (https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html) if(IS_ARM) # ARM-specific options (https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html)
if(ARM_VERSION STREQUAL "arm") if(NOT CMAKE_CROSSCOMPILING)
# Unknown arm version - try our best to detect if(ARM_VERSION STREQUAL "arm")
set(ARCH_COMPILER_FLAGS "-mcpu=native") # Unknown arm version - try our best to detect
else(ARM_VERSION STREQUAL "arm") set(ARCH_COMPILER_FLAGS "-mcpu=native")
set(ARCH_COMPILER_FLAGS "-march=${ARM_VERSION}") else(ARM_VERSION STREQUAL "arm")
endif(ARM_VERSION STREQUAL "arm") set(ARCH_COMPILER_FLAGS "-march=${ARM_VERSION}")
endif(ARM_VERSION STREQUAL "arm")
endif(NOT CMAKE_CROSSCOMPILING)
else(IS_ARM) else(IS_ARM)
set(ARCH_COMPILER_FLAGS "-march=native -mfpmath=sse") set(ARCH_COMPILER_FLAGS "-march=native -mfpmath=sse")
endif(IS_ARM) endif(IS_ARM)

View File

@ -38,13 +38,17 @@ endif(GTEST_INCLUDE_DIRS)
if(NOT ${GTEST_DIR_LOCAL}) if(NOT ${GTEST_DIR_LOCAL})
# if GTEST_DIR is not defined, we download and build it # if GTEST_DIR is not defined, we download and build it
set(gtest_RELEASE 1.8.0) set(gtest_RELEASE 1.8.0)
set(TOOLCHAIN_ARG "")
if(EXISTS $ENV{OECORE_TARGET_SYSROOT})
set(TOOLCHAIN_ARG -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/Toolchains/oe-sdk_cross.cmake)
endif(EXISTS $ENV{OECORE_TARGET_SYSROOT})
ExternalProject_Add( ExternalProject_Add(
gtest-${gtest_RELEASE} gtest-${gtest_RELEASE}
GIT_REPOSITORY https://github.com/google/googletest GIT_REPOSITORY https://github.com/google/googletest
GIT_TAG release-${gtest_RELEASE} GIT_TAG release-${gtest_RELEASE}
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gtest/gtest-${gtest_RELEASE} SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gtest/gtest-${gtest_RELEASE}
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../../gtest-${gtest_RELEASE} BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../../gtest-${gtest_RELEASE}
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DBUILD_GTEST=ON -DBUILD_GMOCK=OFF CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DBUILD_GTEST=ON -DBUILD_GMOCK=OFF ${TOOLCHAIN_ARG}
UPDATE_COMMAND "" UPDATE_COMMAND ""
PATCH_COMMAND "" PATCH_COMMAND ""
INSTALL_COMMAND "" INSTALL_COMMAND ""