Skip to content

Commit 1ad2002

Browse files
committed
examples/sotest: replace Python fixture generators
1 parent f24da1e commit 1ad2002

7 files changed

Lines changed: 462 additions & 291 deletions

File tree

examples/sotest/main/CMakeLists.txt

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ if(CONFIG_EXAMPLES_SOTEST)
2626
set(SOTEST_ROMFS_SRC ${CMAKE_CURRENT_BINARY_DIR}/sotest_romfs.c)
2727
set(SOTEST_MODPRINT_ELF ${CMAKE_BINARY_DIR}/bin/modprint)
2828
set(SOTEST_SHARED_ELF ${CMAKE_BINARY_DIR}/bin/sotest)
29-
set(SOTEST_GEN_SYMTAB ${CMAKE_CURRENT_SOURCE_DIR}/gen_symtab.py)
30-
set(SOTEST_GEN_ROMFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/gen_romfs_source.py)
3129

3230
# Dynamic applications are wrapped in ELF_* helper targets when the build uses
3331
# the non-ELF-capable compiler path.
@@ -41,11 +39,9 @@ if(CONFIG_EXAMPLES_SOTEST)
4139

4240
add_custom_command(
4341
OUTPUT ${SOTEST_SYMTAB}
44-
COMMAND ${Python3_EXECUTABLE} ${SOTEST_GEN_SYMTAB} ${SOTEST_MODPRINT_ELF}
45-
${SOTEST_SHARED_ELF} g_sot ${SOTEST_SYMTAB}
46-
DEPENDS ${SOTEST_MODPRINT_TARGET} ${SOTEST_SHARED_TARGET}
47-
${SOTEST_GEN_SYMTAB}
48-
VERBATIM)
42+
COMMAND ${NUTTX_APPS_DIR}/tools/mksymtab.sh ${SOTEST_MODPRINT_ELF}
43+
${SOTEST_SHARED_ELF} g_sot > ${SOTEST_SYMTAB}
44+
DEPENDS ${SOTEST_MODPRINT_TARGET} ${SOTEST_SHARED_TARGET})
4945

5046
set_source_files_properties(${SOTEST_SYMTAB} PROPERTIES GENERATED TRUE)
5147

@@ -58,16 +54,28 @@ if(CONFIG_EXAMPLES_SOTEST)
5854
if(CONFIG_SYSTEM_NXPKG)
5955
set(SOTEST_SHARED_INDEX ${CMAKE_BINARY_DIR}/bin/shared-index.json)
6056
set(SOTEST_SHARED_SCRIPT ${CMAKE_BINARY_DIR}/bin/pkgsotest.nsh)
57+
set(SOTEST_FIXTURE_HOST_DIR ${CMAKE_CURRENT_BINARY_DIR}/host)
58+
set(SOTEST_FIXTURE_HOST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/host/CMakeLists.txt)
59+
set(SOTEST_FIXTURE_TOOL
60+
${SOTEST_FIXTURE_HOST_DIR}/mk_pkg_fixture_shared${CMAKE_EXECUTABLE_SUFFIX})
61+
62+
add_custom_command(
63+
OUTPUT ${SOTEST_FIXTURE_TOOL}
64+
COMMAND ${CMAKE_COMMAND} -S ${CMAKE_CURRENT_SOURCE_DIR}/host -B
65+
${SOTEST_FIXTURE_HOST_DIR}
66+
COMMAND ${CMAKE_COMMAND} --build ${SOTEST_FIXTURE_HOST_DIR} --target
67+
mk_pkg_fixture_shared
68+
DEPENDS ${SOTEST_FIXTURE_HOST_SRC}
69+
${CMAKE_CURRENT_SOURCE_DIR}/mk_pkg_fixture_shared.c
70+
VERBATIM)
6171

6272
add_custom_command(
6373
OUTPUT ${SOTEST_SHARED_INDEX} ${SOTEST_SHARED_SCRIPT}
64-
COMMAND
65-
${Python3_EXECUTABLE}
66-
${CMAKE_CURRENT_SOURCE_DIR}/mk_pkg_fixture_shared.py
67-
${SOTEST_MODPRINT_ELF} ${SOTEST_SHARED_ELF} ${SOTEST_SHARED_INDEX}
68-
${SOTEST_SHARED_SCRIPT} ${CONFIG_ARCH} ${CONFIG_ARCH_BOARD}
74+
COMMAND ${SOTEST_FIXTURE_TOOL} ${SOTEST_MODPRINT_ELF}
75+
${SOTEST_SHARED_ELF} ${SOTEST_SHARED_INDEX}
76+
${SOTEST_SHARED_SCRIPT} ${CONFIG_ARCH} ${CONFIG_ARCH_BOARD}
6977
DEPENDS ${SOTEST_MODPRINT_TARGET} ${SOTEST_SHARED_TARGET}
70-
${CMAKE_CURRENT_SOURCE_DIR}/mk_pkg_fixture_shared.py
78+
${SOTEST_FIXTURE_TOOL}
7179
VERBATIM)
7280

7381
list(APPEND SOTEST_ROMFS_DEPS ${SOTEST_SHARED_INDEX}
@@ -82,10 +90,8 @@ if(CONFIG_EXAMPLES_SOTEST)
8290

8391
add_custom_command(
8492
OUTPUT ${SOTEST_ROMFS_SRC}
85-
COMMAND ${Python3_EXECUTABLE} ${SOTEST_GEN_ROMFS_SRC} ${SOTEST_ROMFS_IMG}
86-
${SOTEST_ROMFS_SRC}
87-
DEPENDS ${SOTEST_ROMFS_IMG} ${SOTEST_GEN_ROMFS_SRC}
88-
VERBATIM)
93+
COMMAND xxd -i ${SOTEST_ROMFS_IMG} > ${SOTEST_ROMFS_SRC}
94+
DEPENDS ${SOTEST_ROMFS_IMG})
8995

9096
set_source_files_properties(${SOTEST_ROMFS_SRC} PROPERTIES GENERATED TRUE)
9197

examples/sotest/main/Makefile

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,23 @@ ROMFSIMG = sotest_romfs.img
5151
ROMFSSRC = sotest_romfs.c
5252
ROMFSOBJ = $(ROMFSSRC:.c=$(OBJEXT))
5353
ifdef CONFIG_SYSTEM_NXPKG
54+
HOSTOBJSEXT ?= hobj
5455
PKGSHAREDINDEX = $(BINDIR)/shared-index.json
5556
PKGSHAREDTEST = $(BINDIR)/pkgsotest.nsh
56-
PKG_FIXTURE_GEN = $(APPDIR)/examples/sotest/main/mk_pkg_fixture_shared.py
57+
PKG_FIXTURE_GEN = mk_pkg_fixture_shared$(HOSTEXEEXT)
58+
PKG_FIXTURE_SRCS = mk_pkg_fixture_shared.c
59+
PKG_FIXTURE_OBJS = $(PKG_FIXTURE_SRCS:.c=.$(HOSTOBJSEXT))
5760
PKG_FIXTURE_OUTPUTS = $(PKGSHAREDINDEX) $(PKGSHAREDTEST)
5861

62+
$(PKG_FIXTURE_OBJS): %.$(HOSTOBJSEXT): %.c
63+
@echo "CC: $<"
64+
$(Q) $(HOSTCC) -c $(HOSTCFLAGS) $< -o $@
65+
66+
$(PKG_FIXTURE_GEN): $(PKG_FIXTURE_OBJS)
67+
$(Q) $(HOSTCC) $(HOSTLDFLAGS) $(PKG_FIXTURE_OBJS) -o $@
68+
5969
$(PKG_FIXTURE_OUTPUTS) &: $(BINDIR)/modprint $(BINDIR)/sotest $(PKG_FIXTURE_GEN)
60-
$(Q) sh -c 'python3 "$$1" "$$2" "$$3" "$$4" "$$5" "$$6" "$$7"' sh \
61-
$(PKG_FIXTURE_GEN) $(BINDIR)/modprint $(BINDIR)/sotest \
70+
$(Q) ./$(PKG_FIXTURE_GEN) $(BINDIR)/modprint $(BINDIR)/sotest \
6271
$(PKGSHAREDINDEX) $(PKGSHAREDTEST) $(CONFIG_ARCH) \
6372
$(CONFIG_ARCH_BOARD)
6473
endif
@@ -79,6 +88,6 @@ postinstall:: $(ROMFSOBJ) $(SYMTABOBJ) $(FSIMG_OBJ)
7988
$(call ARLOCK, $(call CONVERT_PATH,$(BIN)), $^)
8089

8190
distclean::
82-
$(Q) $(call DELFILE, $(SYMTABSRC) $(SYMTABOBJ) $(ROMFSSRC) $(ROMFSIMG) $(ROMFSOBJ))
91+
$(Q) $(call DELFILE, $(SYMTABSRC) $(SYMTABOBJ) $(ROMFSSRC) $(ROMFSIMG) $(ROMFSOBJ) $(PKG_FIXTURE_GEN) $(PKG_FIXTURE_OBJS))
8392

8493
include $(APPDIR)/Application.mk

examples/sotest/main/gen_romfs_source.py

Lines changed: 0 additions & 58 deletions
This file was deleted.

examples/sotest/main/gen_symtab.py

Lines changed: 0 additions & 91 deletions
This file was deleted.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# ##############################################################################
2+
# apps/examples/sotest/main/host/CMakeLists.txt
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
#
6+
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
7+
# license agreements. See the NOTICE file distributed with this work for
8+
# additional information regarding copyright ownership. The ASF licenses this
9+
# file to you under the Apache License, Version 2.0 (the "License"); you may not
10+
# use this file except in compliance with the License. You may obtain a copy of
11+
# the License at
12+
#
13+
# http://www.apache.org/licenses/LICENSE-2.0
14+
#
15+
# Unless required by applicable law or agreed to in writing, software
16+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
18+
# License for the specific language governing permissions and limitations under
19+
# the License.
20+
#
21+
# ##############################################################################
22+
23+
cmake_minimum_required(VERSION 3.16)
24+
project(sotest_fixture_host LANGUAGES C)
25+
26+
add_executable(mk_pkg_fixture_shared ../mk_pkg_fixture_shared.c)

0 commit comments

Comments
 (0)