Skip to content

PoC: SDL simu and WASM target #5940

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 14 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 57 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,33 +48,66 @@ if(EdgeTX_SUPERBUILD)

# Add explicit targets for triggering cmake in the external projects
set_property(DIRECTORY PROPERTY EP_STEP_TARGETS configure clean)

# Native targets
ExternalProject_Add(native
# ARM targets
ExternalProject_Add(arm-none-eabi
SOURCE_DIR ${CMAKE_SOURCE_DIR}
BINARY_DIR ${CMAKE_BINARY_DIR}/native
BINARY_DIR ${CMAKE_BINARY_DIR}/arm-none-eabi
CMAKE_ARGS ${CMAKE_ARGS} -Wno-dev -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
CMAKE_CACHE_ARGS
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_SOURCE_DIR}/cmake/toolchain/native.cmake
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_SOURCE_DIR}/cmake/toolchain/arm-none-eabi.cmake
-DEdgeTX_SUPERBUILD:BOOL=0
-DNATIVE_BUILD:BOOL=1
-DNATIVE_BUILD:BOOL=0
INSTALL_COMMAND ""
EXCLUDE_FROM_ALL TRUE
)

# ARM targets
ExternalProject_Add(arm-none-eabi
# Native targets
ExternalProject_Add(native
SOURCE_DIR ${CMAKE_SOURCE_DIR}
BINARY_DIR ${CMAKE_BINARY_DIR}/arm-none-eabi
BINARY_DIR ${CMAKE_BINARY_DIR}/native
CMAKE_ARGS ${CMAKE_ARGS} -Wno-dev -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
CMAKE_CACHE_ARGS
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_SOURCE_DIR}/cmake/toolchain/arm-none-eabi.cmake
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_SOURCE_DIR}/cmake/toolchain/native.cmake
-DEdgeTX_SUPERBUILD:BOOL=0
-DNATIVE_BUILD:BOOL=0
-DNATIVE_BUILD:BOOL=1
INSTALL_COMMAND ""
EXCLUDE_FROM_ALL TRUE
)

# Webasm targets
if(ENABLE_WASM)
if(NOT DEFINED $ENV{EMSCRIPTEN_ROOT})
# fetch EMSCRIPTEN_ROOT
message("-- Retrieving EMSCRIPTEN_ROOT")
execute_process(COMMAND
em-config EMSCRIPTEN_ROOT
OUTPUT_VARIABLE EMSCRIPTEN_ROOT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
else()
message("-- Using EMSCRIPTEN_ROOT from environment")
set(EMSCRIPTEN_ROOT $ENV{EMSCRIPTEN_ROOT})
endif()

set(EMSCRIPTEN_TOOLCHAIN_FILE ${EMSCRIPTEN_ROOT}/cmake/Modules/Platform/Emscripten.cmake)
message("-- EMSCRIPTEN_ROOT = ${EMSCRIPTEN_ROOT}")
message("-- EMSCRIPTEN_TOOLCHAIN_FILE = ${EMSCRIPTEN_TOOLCHAIN_FILE}")

ExternalProject_Add(wasm
SOURCE_DIR ${CMAKE_SOURCE_DIR}
BINARY_DIR ${CMAKE_BINARY_DIR}/wasm
CMAKE_ARGS ${CMAKE_ARGS} -Wno-dev -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
CMAKE_CACHE_ARGS
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${EMSCRIPTEN_TOOLCHAIN_FILE}
-DEdgeTX_SUPERBUILD:BOOL=0
-DNATIVE_BUILD:BOOL=1
-DDISABLE_COMPANION:BOOL=1
INSTALL_COMMAND ""
EXCLUDE_FROM_ALL TRUE
)
endif()

add_custom_target(configure
DEPENDS native-configure arm-none-eabi-configure)

Expand All @@ -93,6 +126,13 @@ if(EdgeTX_SUPERBUILD)
DEPENDS native-configure
)

if(ENABLE_WASM)
add_custom_target(wasm-simu
COMMAND $(MAKE) -C wasm simu
DEPENDS wasm-configure
)
endif()

add_custom_target(companion
COMMAND $(MAKE) -C native companion
DEPENDS native-configure
Expand Down Expand Up @@ -127,8 +167,6 @@ if(EdgeTX_SUPERBUILD)
return()
endif()

enable_language(ASM)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
include(GenericDefinitions)

Expand All @@ -139,10 +177,15 @@ else()
endif()

if(NATIVE_BUILD)
include(NativeTargets)
if(NOT EMSCRIPTEN)
include(NativeTargets)
endif()
else()
# Prevent CMake warnings
set(IGNORE "${SDL2_LIBRARY_PATH}" "${LIBSSL1_ROOT_DIR}" "${OPENSSL_ROOT_DIR}")
endif()

# Prevent CMake warnings
set(IGNORE "${ENABLE_WASM}")

add_subdirectory(${RADIO_SRC_DIR})
26 changes: 26 additions & 0 deletions cmake/FetchImgui.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Fetch imgui source code from Github

include(FetchContent)

FetchContent_Declare(
imgui
GIT_REPOSITORY https://github.com/ocornut/imgui
GIT_TAG dbb5eeaadffb6a3ba6a60de1290312e5802dba5a # v1.91.8
SOURCE_DIR imgui
)

FetchContent_MakeAvailable(imgui)

add_library(imgui STATIC
imgui/imgui.cpp
imgui/imgui_draw.cpp
imgui/imgui_tables.cpp
imgui/imgui_widgets.cpp
imgui/backends/imgui_impl_sdl2.cpp
imgui/backends/imgui_impl_sdlrenderer2.cpp
)

target_include_directories(imgui PUBLIC
${CMAKE_CURRENT_BINARY_DIR}/imgui
${CMAKE_CURRENT_BINARY_DIR}/imgui/backends
)
63 changes: 0 additions & 63 deletions cmake/FindFox.cmake

This file was deleted.

71 changes: 0 additions & 71 deletions cmake/FindPhonon.cmake

This file was deleted.

68 changes: 0 additions & 68 deletions cmake/FindXercesC.cmake

This file was deleted.

Loading