package/mraa: drop C++ dependency
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
parent
17ff9a31ce
commit
edf71857f1
193
package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
Normal file
193
package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
Normal file
@ -0,0 +1,193 @@
|
||||
From cb88e4dd1fbbb9d24e625dba2768b88ed99da309 Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Sat, 13 Jun 2020 22:51:37 +0200
|
||||
Subject: [PATCH] CMakeLists.txt: add BUILDCPP option
|
||||
|
||||
C++ is a mandatory dependency since version 1.4.0 and
|
||||
https://github.com/eclipse/mraa/commit/122cab1f1e53b7c9c7cd82905b962071f9bad9dc
|
||||
|
||||
As a result, build on embedded toolchains that do not support C++ fails
|
||||
on:
|
||||
|
||||
CMake Error at CMakeLists.txt:2 (project):
|
||||
The CMAKE_CXX_COMPILER:
|
||||
|
||||
/home/naourr/work/instance-1/output-1/per-package/mraa/host/bin/arm-linux-g++
|
||||
|
||||
is not a full path to an existing compiler tool.
|
||||
|
||||
Fixes:
|
||||
- http://autobuild.buildroot.org/results/31086422e03611c16ab59c4418e3669b580bc0c0
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
[Retrieved from:
|
||||
https://github.com/eclipse/mraa/commit/cb88e4dd1fbbb9d24e625dba2768b88ed99da309]
|
||||
---
|
||||
CMakeLists.txt | 69 +++++++++++++++++++----------------
|
||||
src/java/CMakeLists.txt | 4 +-
|
||||
src/javascript/CMakeLists.txt | 34 +++++++++--------
|
||||
3 files changed, 59 insertions(+), 48 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 250d9106e..90c0dc920 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1,5 +1,5 @@
|
||||
cmake_minimum_required (VERSION 2.8.11)
|
||||
-project (mraa C CXX)
|
||||
+project (mraa C)
|
||||
|
||||
FIND_PACKAGE (Threads REQUIRED)
|
||||
|
||||
@@ -11,6 +11,8 @@ else ()
|
||||
set (CMAKE_C_STANDARD 99)
|
||||
endif ()
|
||||
|
||||
+option (BUILDCPP "Enable C++ (needed by FTDI4222 and tests)" ON)
|
||||
+
|
||||
###############################################################################
|
||||
# Detect supported warning flags
|
||||
# Modified from work By Dan Liew (fpbench - MIT)
|
||||
@@ -33,15 +35,18 @@ set (MRAA_C_WARNING_FLAGS
|
||||
-Werror=missing-parameter-type
|
||||
)
|
||||
|
||||
-# Warning flags for the C++ compiler only
|
||||
-set (MRAA_CXX_WARNING_FLAGS
|
||||
- -Wnon-virtual-dtor
|
||||
- -Woverloaded-virtual
|
||||
- -Wreorder
|
||||
-)
|
||||
-
|
||||
include (CheckCCompilerFlag)
|
||||
-include (CheckCXXCompilerFlag)
|
||||
+if (BUILDCPP)
|
||||
+ # Warning flags for the C++ compiler only
|
||||
+ set (MRAA_CXX_WARNING_FLAGS
|
||||
+ -Wnon-virtual-dtor
|
||||
+ -Woverloaded-virtual
|
||||
+ -Wreorder
|
||||
+ )
|
||||
+
|
||||
+ enable_language (CXX)
|
||||
+ include (CheckCXXCompilerFlag)
|
||||
+endif ()
|
||||
function (MRAA_SANITIZE_FLAG_NAME OUTPUT_VAR FLAG)
|
||||
string (REPLACE "-" "_" SANITIZED_FLAG_NAME "${FLAG}")
|
||||
string (REPLACE "/" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
||||
@@ -62,28 +67,30 @@ foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_C_WARNING_FLAGS})
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
-# Globally set C++ compiler warning flags that are supported and emit
|
||||
-# a warning about unsupported flags
|
||||
-foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_CXX_WARNING_FLAGS})
|
||||
- MRAA_SANITIZE_FLAG_NAME (SANITIZED_FLAG_NAME "${flag}")
|
||||
- CHECK_CXX_COMPILER_FLAG ("${flag}" HAS_CXX_${SANITIZED_FLAG_NAME})
|
||||
- if (HAS_CXX_${SANITIZED_FLAG_NAME})
|
||||
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
|
||||
- else ()
|
||||
- message (WARNING "C++ compiler does not support flag \"${flag}\"")
|
||||
- endif ()
|
||||
-endforeach ()
|
||||
-
|
||||
-# This function adds the c++11 flag to a c++ target (if supported)
|
||||
-function(use_cxx_11 targetname)
|
||||
- include(CheckCXXCompilerFlag)
|
||||
- CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
||||
- if (COMPILER_SUPPORTS_CXX11)
|
||||
- set_target_properties(${targetname} PROPERTIES COMPILE_FLAGS "-std=c++11")
|
||||
- else()
|
||||
- message(FATAL_ERROR "Target '${targetname}' requires c++11 which is not supported by this compiler")
|
||||
- endif()
|
||||
-endfunction()
|
||||
+if (BUILDCPP)
|
||||
+ # Globally set C++ compiler warning flags that are supported and emit
|
||||
+ # a warning about unsupported flags
|
||||
+ foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_CXX_WARNING_FLAGS})
|
||||
+ MRAA_SANITIZE_FLAG_NAME (SANITIZED_FLAG_NAME "${flag}")
|
||||
+ CHECK_CXX_COMPILER_FLAG ("${flag}" HAS_CXX_${SANITIZED_FLAG_NAME})
|
||||
+ if (HAS_CXX_${SANITIZED_FLAG_NAME})
|
||||
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
|
||||
+ else ()
|
||||
+ message (WARNING "C++ compiler does not support flag \"${flag}\"")
|
||||
+ endif ()
|
||||
+ endforeach ()
|
||||
+
|
||||
+ # This function adds the c++11 flag to a c++ target (if supported)
|
||||
+ function(use_cxx_11 targetname)
|
||||
+ include(CheckCXXCompilerFlag)
|
||||
+ CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
||||
+ if (COMPILER_SUPPORTS_CXX11)
|
||||
+ set_target_properties(${targetname} PROPERTIES COMPILE_FLAGS "-std=c++11")
|
||||
+ else()
|
||||
+ message(FATAL_ERROR "Target '${targetname}' requires c++11 which is not supported by this compiler")
|
||||
+ endif()
|
||||
+ endfunction()
|
||||
+endif()
|
||||
|
||||
# Set CMAKE_INSTALL_LIBDIR if not defined
|
||||
include(GNUInstallDirs)
|
||||
diff --git a/src/java/CMakeLists.txt b/src/java/CMakeLists.txt
|
||||
index 231c755fa..cfa72a0df 100644
|
||||
--- a/src/java/CMakeLists.txt
|
||||
+++ b/src/java/CMakeLists.txt
|
||||
@@ -16,7 +16,9 @@ include_directories (
|
||||
set_source_files_properties (mraajava.i PROPERTIES SWIG_FLAGS ";-package;mraa;-I${CMAKE_BINARY_DIR}/src")
|
||||
set_source_files_properties (mraajava.i PROPERTIES CPLUSPLUS ON)
|
||||
|
||||
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -DJAVACALLBACK")
|
||||
+if (BUILDCPP)
|
||||
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -DJAVACALLBACK")
|
||||
+endif()
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DJAVACALLBACK")
|
||||
|
||||
if (NOT DEFINED ENV{JAVA_HOME_NATIVE})
|
||||
diff --git a/src/javascript/CMakeLists.txt b/src/javascript/CMakeLists.txt
|
||||
index 25fd36275..99a96b49d 100644
|
||||
--- a/src/javascript/CMakeLists.txt
|
||||
+++ b/src/javascript/CMakeLists.txt
|
||||
@@ -36,25 +36,27 @@ set_target_properties (mraajs PROPERTIES
|
||||
)
|
||||
|
||||
message (STATUS "INFO - swig Version ${SWIG_VERSION}")
|
||||
-message (STATUS "INFO - CXX compiler Version ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
+if (BUILDCPP)
|
||||
+ message (STATUS "INFO - CXX compiler Version ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
|
||||
-if (${V8_VERSION_MAJOR} GREATER 3)
|
||||
- message (STATUS "INFO - Using V8 version > 3 so requiring C++11 compiler")
|
||||
- # Node 0.12.x V8 engine major version is '3'.
|
||||
- # Node 2.1.0 V8 engine major version is '4'.
|
||||
- set_property (TARGET mraajs PROPERTY CXX_STANDARD 11)
|
||||
- set_property (TARGET mraajs PROPERTY CXX_STANDARD_REQUIRED ON)
|
||||
- if (CMAKE_VERSION VERSION_LESS "3.1")
|
||||
- message (WARNING "Need to use CMAKE version 3.1+, but it is ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}, using a workaround.")
|
||||
- if (CMAKE_COMPILER_IS_GNUCXX)
|
||||
- if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7")
|
||||
- message (FATAL_ERROR "GNU gcc compiler is also too old (need 4.7+, but ${CMAKE_CXX_COMPILER_VERSION}) and does not support C++11 standard.")
|
||||
+ if (${V8_VERSION_MAJOR} GREATER 3)
|
||||
+ message (STATUS "INFO - Using V8 version > 3 so requiring C++11 compiler")
|
||||
+ # Node 0.12.x V8 engine major version is '3'.
|
||||
+ # Node 2.1.0 V8 engine major version is '4'.
|
||||
+ set_property (TARGET mraajs PROPERTY CXX_STANDARD 11)
|
||||
+ set_property (TARGET mraajs PROPERTY CXX_STANDARD_REQUIRED ON)
|
||||
+ if (CMAKE_VERSION VERSION_LESS "3.1")
|
||||
+ message (WARNING "Need to use CMAKE version 3.1+, but it is ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}, using a workaround.")
|
||||
+ if (CMAKE_COMPILER_IS_GNUCXX)
|
||||
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7")
|
||||
+ message (FATAL_ERROR "GNU gcc compiler is also too old (need 4.7+, but ${CMAKE_CXX_COMPILER_VERSION}) and does not support C++11 standard.")
|
||||
+ endif ()
|
||||
+ set (MRAA_CXX11_WORKAROUND_OPTION "-std=gnu++11")
|
||||
+ else ()
|
||||
+ set (MRAA_CXX11_WORKAROUND_OPTION "-std=c++11")
|
||||
endif ()
|
||||
- set (MRAA_CXX11_WORKAROUND_OPTION "-std=gnu++11")
|
||||
- else ()
|
||||
- set (MRAA_CXX11_WORKAROUND_OPTION "-std=c++11")
|
||||
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MRAA_CXX11_WORKAROUND_OPTION} ")
|
||||
endif ()
|
||||
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MRAA_CXX11_WORKAROUND_OPTION} ")
|
||||
endif ()
|
||||
endif ()
|
||||
|
@ -9,7 +9,6 @@ config BR2_PACKAGE_MRAA
|
||||
bool "mraa"
|
||||
depends on BR2_PACKAGE_MRAA_ARCH_SUPPORTS
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
help
|
||||
mraa is a C/C++ library with bindings to javascript & python
|
||||
@ -19,7 +18,6 @@ config BR2_PACKAGE_MRAA
|
||||
|
||||
http://iotdk.intel.com/docs/master/mraa
|
||||
|
||||
comment "mraa needs a toolchain w/ C++, threads, dynamic library"
|
||||
comment "mraa needs a toolchain w/ threads, dynamic library"
|
||||
depends on BR2_PACKAGE_MRAA_ARCH_SUPPORTS
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
|
||||
|| BR2_STATIC_LIBS
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
||||
|
@ -24,9 +24,10 @@ endif
|
||||
|
||||
# USBPLAT only makes sense with FTDI4222, which requires the ftd2xx library,
|
||||
# which doesn't exist in buildroot
|
||||
|
||||
# Disable C++ as it is used only by FTDI4222 and tests
|
||||
MRAA_CONF_OPTS += \
|
||||
-DBUILDARCH=$(MRAA_ARCH) \
|
||||
-DBUILDCPP=OFF \
|
||||
-DBUILDSWIG=OFF \
|
||||
-DUSBPLAT=OFF \
|
||||
-DFTDI4222=OFF \
|
||||
|
Loading…
Reference in New Issue
Block a user