You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2024/08/07 07:59:59 UTC
(nuttx-apps) 02/02: iozone:add CMakefile.txt
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
commit c87c7c24a8fa9cbc34989dcc5afbf30c7f4676c1
Author: chenrun1 <ch...@xiaomi.com>
AuthorDate: Thu May 30 10:10:48 2024 +0800
iozone:add CMakefile.txt
Signed-off-by: chenrun1 <ch...@xiaomi.com>
---
benchmarks/iozone/CMakeLists.txt | 87 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/benchmarks/iozone/CMakeLists.txt b/benchmarks/iozone/CMakeLists.txt
new file mode 100644
index 000000000..843fa53ac
--- /dev/null
+++ b/benchmarks/iozone/CMakeLists.txt
@@ -0,0 +1,87 @@
+# ##############################################################################
+# apps/benchmarks/iozone/CMakeLists.txt
+#
+# 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_BENCHMARK_IOZONE)
+
+ # Define the directory and file paths
+ set(IOZONE_VERSION "${CONFIG_BENCHMARK_IOZONE_VERSION}") # Adjust this as
+ # needed
+ set(IOZONE_DIR ${CMAKE_CURRENT_LIST_DIR}/iozone)
+ set(IOZONE_ZIP ${IOZONE_DIR}.tgz)
+ set(IOZONE_URL
+ "https://www.iozone.org/src/current/iozone${IOZONE_VERSION}.tgz")
+
+ # Download and unpack iozone if not already present
+ if(NOT EXISTS ${IOZONE_DIR})
+ FetchContent_Declare(
+ iozone_fetch
+ URL ${IOZONE_URL} SOURCE_DIR ${IOZONE_DIR}
+ DOWNLOAD_NO_PROGRESS true
+ TIMEOUT 30
+ PATCH_COMMAND patch -p1 -d ${IOZONE_DIR} <
+ ${CMAKE_CURRENT_LIST_DIR}/iozone.patch)
+
+ FetchContent_GetProperties(iozone_fetch)
+ if(NOT iozone_fetch_POPULATED)
+ FetchContent_Populate(iozone_fetch)
+ endif()
+ endif()
+
+ # Define source files
+ set(CSRCS ${IOZONE_DIR}/src/current/libbif.c)
+ set(MAINSRC ${IOZONE_DIR}/src/current/iozone.c)
+
+ # Define compile flags
+ set(CFLAGS
+ -Dunix
+ -DHAVE_ANSIC_C
+ -DHAVE_PREAD
+ -DNAME=\"nuttx\"
+ -DNO_MADVISE
+ -DNO_FORK
+ -D__FreeBSD__
+ -DNO_THREADS
+ -Wno-unused-parameter
+ -Wno-unused-function
+ -Wno-shadow
+ -Wno-unused-but-set-variable
+ -Wno-strict-prototypes
+ -Wno-misleading-indentation
+ -Wno-maybe-uninitialized
+ -DMAXBUFFERSIZE=32*1024
+ -DMAXSTREAMS=8
+ -DMAXNAMESIZE=NAME_MAX
+ -DRECLEN_START=1024)
+
+ # Add application to the build
+ set(SRCS ${IOZONE_DIR}/src/current/iozone.c ${CSRCS})
+ nuttx_add_application(
+ NAME
+ iozone
+ PRIORITY
+ ${CONFIG_BENCHMARK_IOZONE_PRIORITY}
+ STACKSIZE
+ ${CONFIG_BENCHMARK_IOZONE_STACKSIZE}
+ COMPILE_FLAGS
+ ${CFLAGS}
+ SRCS
+ ${SRCS})
+
+endif()