This is an automated email from the ASF dual-hosted git repository.

cederom pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git

commit dd109a88dee42fe47378572dc2a906ce53117400
Author: raiden00pl <[email protected]>
AuthorDate: Tue Jul 7 09:57:15 2026 +0200

    inertial/madgwick: add CMake build support
    
    add CMake build support for madgwick and update inertial/madgwick/.gitignore
    
    Signed-off-by: raiden00pl <[email protected]>
---
 CMakeLists.txt                   |  1 +
 inertial/CMakeLists.txt          |  4 ++-
 inertial/madgwick/.gitignore     |  2 ++
 inertial/madgwick/CMakeLists.txt | 58 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 64 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3ebffdd94..55110defb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,6 +55,7 @@ add_subdirectory(fsutils)
 add_subdirectory(games)
 add_subdirectory(graphics)
 add_subdirectory(industry)
+add_subdirectory(inertial)
 add_subdirectory(interpreters)
 add_subdirectory(logging)
 add_subdirectory(lte)
diff --git a/inertial/CMakeLists.txt b/inertial/CMakeLists.txt
index 66cfc9e27..e3324c5cc 100644
--- a/inertial/CMakeLists.txt
+++ b/inertial/CMakeLists.txt
@@ -1,7 +1,7 @@
 # 
##############################################################################
 # apps/inertial/CMakeLists.txt
 #
-# SPDX-License-Identifier: BSD-3-Clause
+# SPDX-License-Identifier: Apache-2.0
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more 
contributor
 # license agreements.  See the NOTICE file distributed with this work for
@@ -20,4 +20,6 @@
 #
 # 
##############################################################################
 
+nuttx_add_subdirectory()
+
 nuttx_generate_kconfig(MENUDESC "Inertial Libraries Support")
diff --git a/inertial/madgwick/.gitignore b/inertial/madgwick/.gitignore
new file mode 100644
index 000000000..53b249722
--- /dev/null
+++ b/inertial/madgwick/.gitignore
@@ -0,0 +1,2 @@
+/fusion
+/libmadgwick.tar.gz
diff --git a/inertial/madgwick/CMakeLists.txt b/inertial/madgwick/CMakeLists.txt
new file mode 100644
index 000000000..df20b7129
--- /dev/null
+++ b/inertial/madgwick/CMakeLists.txt
@@ -0,0 +1,58 @@
+# 
##############################################################################
+# apps/inertial/madgwick/CMakeLists.txt
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more 
contributor
+# license agreements.  See the NOTICE file distributed with this work for
+# additional information regarding copyright ownership.  The ASF licenses this
+# file to you under the Apache License, Version 2.0 (the "License"); you may 
not
+# use this file except in compliance with the License.  You may obtain a copy 
of
+# the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations under
+# the License.
+#
+# 
##############################################################################
+
+if(CONFIG_LIB_MADGWICK)
+
+  set(MADGWICK_DIR ${CMAKE_CURRENT_LIST_DIR}/fusion)
+
+  if(NOT EXISTS ${MADGWICK_DIR})
+    FetchContent_Declare(
+      madgwick_fetch
+      DOWNLOAD_NAME "libmadgwick.tar.gz"
+      DOWNLOAD_DIR ${CMAKE_CURRENT_LIST_DIR}
+      URL 
"https://github.com/xioTechnologies/Fusion/archive/refs/tags/v${CONFIG_LIB_MADGWICK_VER}.tar.gz";
+          SOURCE_DIR
+          ${MADGWICK_DIR}
+          BINARY_DIR
+          ${CMAKE_BINARY_DIR}/apps/inertial/madgwick/fusion
+      DOWNLOAD_NO_PROGRESS true
+      TIMEOUT 30)
+
+    FetchContent_GetProperties(madgwick_fetch)
+
+    if(NOT madgwick_fetch_POPULATED)
+      FetchContent_Populate(madgwick_fetch)
+    endif()
+  endif()
+
+  set(CSRCS
+      ${MADGWICK_DIR}/Fusion/FusionAhrs.c
+      ${MADGWICK_DIR}/Fusion/FusionCompass.c
+      ${MADGWICK_DIR}/Fusion/FusionOffset.c)
+
+  nuttx_add_library(madgwick STATIC)
+  target_sources(madgwick PRIVATE ${CSRCS})
+  target_include_directories(madgwick PUBLIC ${MADGWICK_DIR})
+  target_compile_options(madgwick PRIVATE -Wno-shadow -Wno-strict-prototypes
+                                          -Wno-unknown-pragmas)
+
+endif()

Reply via email to