All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] package/mraa: renumber patch
@ 2020-10-04 11:10 Fabrice Fontaine
  2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Fabrice Fontaine @ 2020-10-04 11:10 UTC (permalink / raw)
  To: buildroot

Commit fd5376a39d079cc5aa26d67788a0c32d234f2f96 wrongly named the patch
as 0002-x.patch instead of 0001-x.patch

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 ...patch => 0001-include-Declare-gVERSION-global-as-extern.patch} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename package/mraa/{0002-include-Declare-gVERSION-global-as-extern.patch => 0001-include-Declare-gVERSION-global-as-extern.patch} (100%)

diff --git a/package/mraa/0002-include-Declare-gVERSION-global-as-extern.patch b/package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
similarity index 100%
rename from package/mraa/0002-include-Declare-gVERSION-global-as-extern.patch
rename to package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
-- 
2.28.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency
  2020-10-04 11:10 [Buildroot] [PATCH 1/2] package/mraa: renumber patch Fabrice Fontaine
@ 2020-10-04 11:10 ` Fabrice Fontaine
  2020-10-10 20:10   ` Peter Korsgaard
  2020-10-04 19:54 ` [Buildroot] [PATCH 1/2] package/mraa: renumber patch Yann E. MORIN
  2020-10-10 20:09 ` Peter Korsgaard
  2 siblings, 1 reply; 5+ messages in thread
From: Fabrice Fontaine @ 2020-10-04 11:10 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 ...2-CMakeLists.txt-add-BUILDCPP-option.patch | 193 ++++++++++++++++++
 package/mraa/Config.in                        |   6 +-
 package/mraa/mraa.mk                          |   3 +-
 3 files changed, 197 insertions(+), 5 deletions(-)
 create mode 100644 package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch

diff --git a/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch b/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
new file mode 100644
index 0000000000..fbadfe79ef
--- /dev/null
+++ b/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
@@ -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 ()
+ 
diff --git a/package/mraa/Config.in b/package/mraa/Config.in
index 745b235cb3..c845fe9f99 100644
--- a/package/mraa/Config.in
+++ b/package/mraa/Config.in
@@ -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
diff --git a/package/mraa/mraa.mk b/package/mraa/mraa.mk
index 89c539e793..910339b386 100644
--- a/package/mraa/mraa.mk
+++ b/package/mraa/mraa.mk
@@ -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 \
-- 
2.28.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/2] package/mraa: renumber patch
  2020-10-04 11:10 [Buildroot] [PATCH 1/2] package/mraa: renumber patch Fabrice Fontaine
  2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
@ 2020-10-04 19:54 ` Yann E. MORIN
  2020-10-10 20:09 ` Peter Korsgaard
  2 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2020-10-04 19:54 UTC (permalink / raw)
  To: buildroot

Fabrice, All,

On 2020-10-04 13:10 +0200, Fabrice Fontaine spake thusly:
> Commit fd5376a39d079cc5aa26d67788a0c32d234f2f96 wrongly named the patch
> as 0002-x.patch instead of 0001-x.patch
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Both applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  ...patch => 0001-include-Declare-gVERSION-global-as-extern.patch} | 0
>  1 file changed, 0 insertions(+), 0 deletions(-)
>  rename package/mraa/{0002-include-Declare-gVERSION-global-as-extern.patch => 0001-include-Declare-gVERSION-global-as-extern.patch} (100%)
> 
> diff --git a/package/mraa/0002-include-Declare-gVERSION-global-as-extern.patch b/package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
> similarity index 100%
> rename from package/mraa/0002-include-Declare-gVERSION-global-as-extern.patch
> rename to package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
> -- 
> 2.28.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/2] package/mraa: renumber patch
  2020-10-04 11:10 [Buildroot] [PATCH 1/2] package/mraa: renumber patch Fabrice Fontaine
  2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
  2020-10-04 19:54 ` [Buildroot] [PATCH 1/2] package/mraa: renumber patch Yann E. MORIN
@ 2020-10-10 20:09 ` Peter Korsgaard
  2 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2020-10-10 20:09 UTC (permalink / raw)
  To: buildroot

>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes:

 > Commit fd5376a39d079cc5aa26d67788a0c32d234f2f96 wrongly named the patch
 > as 0002-x.patch instead of 0001-x.patch

 > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Committed to 2020.08.x, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency
  2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
@ 2020-10-10 20:10   ` Peter Korsgaard
  0 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2020-10-10 20:10 UTC (permalink / raw)
  To: buildroot

>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes:

 > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Committed to 2020.08.x, thanks.

 > ---
 >  ...2-CMakeLists.txt-add-BUILDCPP-option.patch | 193 ++++++++++++++++++
 >  package/mraa/Config.in                        |   6 +-
 >  package/mraa/mraa.mk                          |   3 +-
 >  3 files changed, 197 insertions(+), 5 deletions(-)
 >  create mode 100644 package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch

 > diff --git a/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch b/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
 > new file mode 100644
 > index 0000000000..fbadfe79ef
 > --- /dev/null
 > +++ b/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
 > @@ -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 ()
 > + 
 > diff --git a/package/mraa/Config.in b/package/mraa/Config.in
 > index 745b235cb3..c845fe9f99 100644
 > --- a/package/mraa/Config.in
 > +++ b/package/mraa/Config.in
 > @@ -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
 > diff --git a/package/mraa/mraa.mk b/package/mraa/mraa.mk
 > index 89c539e793..910339b386 100644
 > --- a/package/mraa/mraa.mk
 > +++ b/package/mraa/mraa.mk
 > @@ -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 \
 > -- 
 > 2.28.0

 > _______________________________________________
 > buildroot mailing list
 > buildroot at busybox.net
 > http://lists.busybox.net/mailman/listinfo/buildroot

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-10-10 20:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-04 11:10 [Buildroot] [PATCH 1/2] package/mraa: renumber patch Fabrice Fontaine
2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
2020-10-10 20:10   ` Peter Korsgaard
2020-10-04 19:54 ` [Buildroot] [PATCH 1/2] package/mraa: renumber patch Yann E. MORIN
2020-10-10 20:09 ` Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.