Skip to content
Merged
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
55 changes: 55 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,61 @@ jobs:
name: ThunderEngine-freebsd-x64.7z
path: ThunderEngine-freebsd-x64.7z

emscripten:
name: Emscripten
runs-on: ubuntu-latest
needs: version

env:
EMSCRIPTEN_VERSION: 3.1.56

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Emscripten setup
run: |
git clone --depth 1 https://github.com/emscripten-core/emsdk.git ~/emsdk &&
~/emsdk/emsdk install ${{ env.EMSCRIPTEN_VERSION }} && ~/emsdk/emsdk activate ${{ env.EMSCRIPTEN_VERSION }}

- name: Packages installation
run: |
sudo apt update && sudo apt install -y --no-install-recommends \
ninja-build

- name: Build setup
shell: bash
run: |
cmake -E make_directory ${{ runner.workspace }}/thunder/build

- name: Configuration
shell: bash
working-directory: ${{ runner.workspace }}/thunder/build
run: |
source ~/emsdk/emsdk_env.sh &&
emcmake cmake -G "Ninja" ..

- name: Build
shell: bash
working-directory: ${{ runner.workspace }}/thunder/build
run: |
cmake --build . --config Release

- name: Install
shell: bash
working-directory: ${{ runner.workspace }}/thunder/build
run: |
cmake --install . --config Release
7z a -t7z ThunderEngine-webgl-x86.7z install-root/sdk/${VERSION}/emscripten

- name: Upload Thunder
uses: actions/upload-artifact@v4
with:
name: ThunderEngine-webgl-x86.7z
path: ${{ runner.workspace }}/thunder/build/ThunderEngine-webgl-x86.7z

github:
name: Upload to GitHub releases
runs-on: ubuntu-latest
Expand Down
48 changes: 28 additions & 20 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,13 @@ set(tvosVersion "10.0")
set(CMAKE_CXX_STANDARD 17)
set(standardLibrary "libc++")

set(desktop NOT ("android" IN_LIST CMAKE_SYSTEM_NAME OR "ios" IN_LIST CMAKE_SYSTEM_NAME OR "tvos" IN_LIST CMAKE_SYSTEM_NAME))
if(EMSCRIPTEN)
set(desktop false)
else()
set(desktop AND NOT ("android" IN_LIST CMAKE_SYSTEM_NAME OR "ios" IN_LIST CMAKE_SYSTEM_NAME OR "tvos" IN_LIST CMAKE_SYSTEM_NAME) )
endif()

if (APPLE)
if(APPLE)
set(bundle "${EDITOR_NAME}.app/Contents/MacOS/")
else()
set(bundle "")
Expand Down Expand Up @@ -71,26 +75,30 @@ set(INC_PATH "${SDK_PATH}/include")
set(TOOLS_PATH "${SDK_PATH}/tools")
set(PLUGINS_PATH "${BIN_PATH}/plugins")

find_package(Qt5 COMPONENTS
Core
Gui
Widgets
QuickWidgets
Xml
Multimedia
Gamepad
Svg
)

set(QT_BIN_DIR "$ENV{QT5_DIR}/bin")
set(QT_PLUGINS_DIR "$ENV{QT5_DIR}/plugins")
set(QT_QML_DIR "$ENV{QT5_DIR}/qml")
if(desktop)
find_package(Qt5 COMPONENTS
Core
Gui
Widgets
QuickWidgets
Xml
Multimedia
Gamepad
Svg
)

set(QT_BIN_DIR "$ENV{QT5_DIR}/bin")
set(QT_PLUGINS_DIR "$ENV{QT5_DIR}/plugins")
set(QT_QML_DIR "$ENV{QT5_DIR}/qml")
endif()

# Add subdirectories
add_subdirectory(thirdparty)
add_subdirectory(engine)
add_subdirectory(modules)
add_subdirectory(worldeditor)
add_subdirectory(builder)
add_subdirectory(tests)
add_subdirectory(build)
if(desktop)
add_subdirectory(worldeditor)
add_subdirectory(builder)
add_subdirectory(tests)
add_subdirectory(build)
endif()
116 changes: 58 additions & 58 deletions build/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,77 +3,77 @@ cmake_minimum_required(VERSION 3.10)
project(resources)

if(desktop)
# Install Engine and Editor Resources
install(DIRECTORY ${RESOURCE_ROOT}
DESTINATION "${SDK_PATH}/resources"
FILES_MATCHING PATTERN "*"
)
# Install Engine and Editor Resources
install(DIRECTORY ${RESOURCE_ROOT}
DESTINATION "${SDK_PATH}/resources"
FILES_MATCHING PATTERN "*"
)

# Install Qt plugins
install(DIRECTORY ${QT_PLUGINS_DIR}/imageformats
DESTINATION "${PLATFORM_PATH}/plugins"
)
# Install Qt plugins
install(DIRECTORY ${QT_PLUGINS_DIR}/imageformats
DESTINATION "${PLATFORM_PATH}/plugins"
)

install(DIRECTORY ${QT_PLUGINS_DIR}/platforms
DESTINATION "${PLATFORM_PATH}/plugins"
)
install(DIRECTORY ${QT_PLUGINS_DIR}/platforms
DESTINATION "${PLATFORM_PATH}/plugins"
)

# Install QML plugins
install(DIRECTORY ${QT_QML_DIR}/QtGraphicalEffects
DESTINATION "${PLATFORM_PATH}/qml"
)
# Install QML plugins
install(DIRECTORY ${QT_QML_DIR}/QtGraphicalEffects
DESTINATION "${PLATFORM_PATH}/qml"
)

install(DIRECTORY ${QT_QML_DIR}/QtQuick
DESTINATION "${PLATFORM_PATH}/qml"
)
install(DIRECTORY ${QT_QML_DIR}/QtQuick
DESTINATION "${PLATFORM_PATH}/qml"
)

install(DIRECTORY ${QT_QML_DIR}/QtQuick.2
DESTINATION "${PLATFORM_PATH}/qml"
)
install(DIRECTORY ${QT_QML_DIR}/QtQuick.2
DESTINATION "${PLATFORM_PATH}/qml"
)

set(libPrefix "${QT_BIN_DIR}/")
set(libPrefix "${QT_BIN_DIR}/")

if(WIN32)
set(libSuffix "$<$<CONFIG:Debug>:d>.dll")
endif()
if(WIN32)
set(libSuffix "$<$<CONFIG:Debug>:d>.dll")
endif()

set(QT_LIBS
"Qt5Core"
"Qt5Gui"
"Qt5Xml"
"Qt5XmlPatterns"
"Qt5Network"
"Qt5Multimedia"
"Qt5QuickWidgets"
"Qt5Quick"
"Qt5QuickTemplates2"
"Qt5QuickShapes"
"Qt5QuickControls2"
"Qt5Qml"
"Qt5Svg"
"Qt5Widgets"
"Qt5Gamepad"
"Qt5Script"
)
set(QT_LIBS
"Qt5Core"
"Qt5Gui"
"Qt5Xml"
"Qt5XmlPatterns"
"Qt5Network"
"Qt5Multimedia"
"Qt5QuickWidgets"
"Qt5Quick"
"Qt5QuickTemplates2"
"Qt5QuickShapes"
"Qt5QuickControls2"
"Qt5Qml"
"Qt5Svg"
"Qt5Widgets"
"Qt5Gamepad"
"Qt5Script"
)

if (Qt5Core_VERSION VERSION_GREATER_EQUAL 5.14.0)
list(APPEND QT_LIBS "Qt5QmlModels")
list(APPEND QT_LIBS "Qt5QmlWorkerScript")
if (Qt5Core_VERSION VERSION_GREATER_EQUAL 5.14.0)
list(APPEND QT_LIBS "Qt5QmlModels")
list(APPEND QT_LIBS "Qt5QmlWorkerScript")
endif()

list(TRANSFORM QT_LIBS PREPEND ${libPrefix})
if(WIN32)
list(TRANSFORM QT_LIBS APPEND ${libSuffix})
list(TRANSFORM QT_LIBS PREPEND ${libPrefix})
if(WIN32)
list(TRANSFORM QT_LIBS APPEND ${libSuffix})
endif()

# Install Qt libraries
install(FILES ${QT_LIBS}
DESTINATION "${BIN_PATH}"
)
# Install Qt libraries
install(FILES ${QT_LIBS}
DESTINATION "${BIN_PATH}"
)

# Install Qt config
install(FILES "${CMAKE_SOURCE_DIR}/build/${OS_NAME}/qt.conf"
DESTINATION "${BIN_PATH}"
)
# Install Qt config
install(FILES "${CMAKE_SOURCE_DIR}/build/${OS_NAME}/qt.conf"
DESTINATION "${BIN_PATH}"
)

endif()
16 changes: 8 additions & 8 deletions builder/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,6 @@ if(UNIX AND NOT APPLE AND NOT LINUX)
)
endif()

file(GLOB MOC_HEADERS
"*.h"
)

QT5_WRAP_CPP(MOC_SRCS ${MOC_HEADERS})

add_definitions (
-DCOMPANY_NAME="${COMPANY_NAME}"
-DBUILDER_NAME="${BUILDER_NAME}"
Expand All @@ -43,7 +37,13 @@ add_definitions (

source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${${PROJECT_NAME}_srcFiles})

if (desktop)
if(desktop)
file(GLOB MOC_HEADERS
"*.h"
)

QT5_WRAP_CPP(MOC_SRCS ${MOC_HEADERS})

add_executable(${BUILDER_NAME} ${${PROJECT_NAME}_srcFiles} ${MOC_SRCS})

target_link_libraries(${BUILDER_NAME} PRIVATE
Expand Down Expand Up @@ -82,7 +82,7 @@ if (desktop)
)

install(TARGETS ${BUILDER_NAME}
DESTINATION "${BIN_PATH}"
DESTINATION "${BIN_PATH}"
)

endif()
Loading
Loading