Start renaming project to Metaforce

This commit is contained in:
Luke Street 2021-04-06 18:58:11 -04:00
parent 63a78f8753
commit d94a6eef2b
138 changed files with 247 additions and 2791 deletions

View File

@ -78,9 +78,9 @@ jobs:
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: urde-${{env.URDE_VERSION}}-linux-${{matrix.cc}}-x86_64 name: metaforce-${{env.METAFORCE_VERSION}}-linux-${{matrix.cc}}-x86_64
path: | path: |
URDE-*.AppImage Metaforce-*.AppImage
build/Binaries/*.dbg build/Binaries/*.dbg
build-macos: build-macos:
@ -128,12 +128,12 @@ jobs:
- name: Deploy & codesign application - name: Deploy & codesign application
working-directory: build/Binaries working-directory: build/Binaries
run: | run: |
mv hecl-gui.app URDE.app mv metaforce-gui.app Metaforce.app
for i in visigen hecl urde crashpad_handler; do for i in visigen hecl metaforce crashpad_handler; do
codesign --timestamp --options runtime -s "${{secrets.MACOS_CODESIGN_IDENT}}" URDE.app/Contents/MacOS/$i codesign --timestamp --options runtime -s "${{secrets.MACOS_CODESIGN_IDENT}}" Metaforce.app/Contents/MacOS/$i
done done
macdeployqt URDE.app -sign-for-notarization="${{secrets.MACOS_CODESIGN_IDENT}}" -no-strip macdeployqt Metaforce.app -sign-for-notarization="${{secrets.MACOS_CODESIGN_IDENT}}" -no-strip
create-dmg URDE.app --identity="${{secrets.MACOS_CODESIGN_IDENT}}" create-dmg Metaforce.app --identity="${{secrets.MACOS_CODESIGN_IDENT}}"
xcrun altool -t osx -f *.dmg --primary-bundle-id com.axiodl.URDE --notarize-app \ xcrun altool -t osx -f *.dmg --primary-bundle-id com.axiodl.URDE --notarize-app \
-u "${{secrets.MACOS_ASC_USERNAME}}" -p "${{secrets.MACOS_ASC_PASSWORD}}" \ -u "${{secrets.MACOS_ASC_USERNAME}}" -p "${{secrets.MACOS_ASC_PASSWORD}}" \
--team-id "${{secrets.MACOS_ASC_TEAM_ID}}" --team-id "${{secrets.MACOS_ASC_TEAM_ID}}"
@ -141,7 +141,7 @@ jobs:
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: urde-${{env.URDE_VERSION}}-macos-appleclang-x86_64 name: metaforce-${{env.METAFORCE_VERSION}}-macos-appleclang-x86_64
path: build/Binaries/*.dmg path: build/Binaries/*.dmg
build-windows-msvc: build-windows-msvc:
@ -218,21 +218,21 @@ jobs:
SENTRY_AUTH_TOKEN: ${{secrets.SENTRY_AUTH_TOKEN}} SENTRY_AUTH_TOKEN: ${{secrets.SENTRY_AUTH_TOKEN}}
SENTRY_URL: ${{secrets.SENTRY_URL}} SENTRY_URL: ${{secrets.SENTRY_URL}}
run: | run: |
& "$env:RUNNER_WORKSPACE\temp\sentry-cli.exe" upload-dif --org axiodl --project urde --include-sources ` & "$env:RUNNER_WORKSPACE\temp\sentry-cli.exe" upload-dif --org axiodl --project metaforce --include-sources `
urde.exe urde.pdb hecl.exe hecl.pdb hecl-gui.exe hecl-gui.pdb visigen.exe visigen.pdb metaforce.exe metaforce.pdb hecl.exe hecl.pdb metaforce-gui.exe metaforce-gui.pdb visigen.exe visigen.pdb
- name: Compress PDBs - name: Compress PDBs
working-directory: ${{github.workspace}}/build/Binaries working-directory: ${{github.workspace}}/build/Binaries
run: 7z a -t7z debug.7z urde.pdb hecl.pdb hecl-gui.pdb visigen.pdb run: 7z a -t7z debug.7z metaforce.pdb hecl.pdb metaforce-gui.pdb visigen.pdb
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: urde-${{env.URDE_VERSION}}-win32-msvc-x86_64 name: metaforce-${{env.METAFORCE_VERSION}}-win32-msvc-x86_64
path: | path: |
build/Binaries/urde.exe build/Binaries/metaforce.exe
build/Binaries/metaforce-gui.exe
build/Binaries/hecl.exe build/Binaries/hecl.exe
build/Binaries/hecl-gui.exe
build/Binaries/visigen.exe build/Binaries/visigen.exe
build/Binaries/crashpad_handler.exe build/Binaries/crashpad_handler.exe
build/Binaries/debug.7z build/Binaries/debug.7z
@ -304,16 +304,16 @@ jobs:
- name: Compress PDBs - name: Compress PDBs
working-directory: ${{github.workspace}}/build/Binaries working-directory: ${{github.workspace}}/build/Binaries
run: 7z a -t7z debug.7z urde.pdb hecl.pdb hecl-gui.pdb visigen.pdb run: 7z a -t7z debug.7z metaforce.pdb hecl.pdb metaforce-gui.pdb visigen.pdb
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: urde-${{env.URDE_VERSION}}-win32-clang-x86_64 name: metaforce-${{env.METAFORCE_VERSION}}-win32-clang-x86_64
path: | path: |
build/Binaries/urde.exe build/Binaries/metaforce.exe
build/Binaries/metaforce-gui.exe
build/Binaries/hecl.exe build/Binaries/hecl.exe
build/Binaries/hecl-gui.exe
build/Binaries/visigen.exe build/Binaries/visigen.exe
build/Binaries/crashpad_handler.exe build/Binaries/crashpad_handler.exe
build/Binaries/debug.7z build/Binaries/debug.7z

View File

@ -1,137 +0,0 @@
.build:variables:
variables: &build_variables
GIT_SUBMODULE_STRATEGY: recursive
build:macos:universal:
stage: build
tags:
- macos
- arm64
variables:
<<: *build_variables
script:
- export PATH="/opt/homebrew/bin:$PATH"
- mkdir build-{arm64,x86_64}
- cd build-arm64
- >
cmake
-GNinja
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DURDE_DLPACKAGE=urde-$CI_PIPELINE_ID-macos-universal
..
- ninja urde hecl visigen
- cd ../build-x86_64
- >
cmake
-GNinja
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DCMAKE_APPLE_SILICON_PROCESSOR=x86_64
-DURDE_DLPACKAGE=urde-$CI_PIPELINE_ID-macos-universal
-DURDE_VECTOR_ISA=sse41
..
- ninja urde hecl visigen
- cd Binaries
- cp -R urde.app $CI_PROJECT_DIR/URDE.app
- cd $CI_PROJECT_DIR
- lipo -create -output URDE.app/Contents/MacOS/urde build-{x86_64,arm64}/Binaries/urde.app/Contents/MacOS/urde
- lipo -create -output URDE.app/Contents/MacOS/hecl build-{x86_64,arm64}/Binaries/urde.app/Contents/MacOS/hecl
- lipo -create -output URDE.app/Contents/MacOS/visigen build-{x86_64,arm64}/Binaries/urde.app/Contents/MacOS/visigen
- strip -S -o URDE.app/Contents/MacOS/urde URDE.app/Contents/MacOS/urde
- strip -S -o URDE.app/Contents/MacOS/hecl URDE.app/Contents/MacOS/hecl
- strip -S -o URDE.app/Contents/MacOS/visigen URDE.app/Contents/MacOS/visigen
- (if [ "${URDE_MACOS_CODESIGN_UID}" != "" ]; then codesign -s $URDE_MACOS_CODESIGN_UID --deep URDE.app; else echo "Unable to sign app bundle :("; fi);
only:
- release
- dev
artifacts:
name: "urde-$CI_PIPELINE_ID-macos-universal"
paths:
- URDE.app/
expire_in: 1 week
build:linux:appimage:
stage: build
tags:
- linux
script:
- VERSION=$CI_PIPELINE_ID ./lxd-build-appimage.sh
only:
- release
- dev
artifacts:
name: "urde-$CI_PIPELINE_ID-linux-x86_64-appimage"
paths:
- URDE-$CI_PIPELINE_ID-x86_64.AppImage
expire_in: 1 week
.build:win32: &win32_definition
stage: build
tags:
- win32
script:
- cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
- >
Get-Content "$env:temp\vcvars.txt" | Foreach-Object {
if ($_ -match "^(.*?)=(.*)$") {
Set-Content "env:\$($matches[1])" $matches[2]
}
}
- mkdir build
- cd build
- >
cmake
-GNinja
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
-DURDE_DLPACKAGE="urde-$env:CI_PIPELINE_ID-win32-x86_64-$env:URDE_VECTOR_ISA"
-DURDE_VECTOR_ISA="$env:URDE_VECTOR_ISA"
-DLLVM_ROOT_DIR=C:\projects\deps\llvm
-DCMAKE_C_FLAGS=
-DCMAKE_CXX_FLAGS=
..
- ninja urde hecl visigen
- 'copy Binaries\urde.exe "$env:CI_PROJECT_DIR\urde.exe"'
- 'pdbcopy Binaries\urde.pdb "$env:CI_PROJECT_DIR\urde.pdb" -p'
- 'copy Binaries\hecl.exe "$env:CI_PROJECT_DIR\hecl.exe"'
- 'pdbcopy Binaries\hecl.pdb "$env:CI_PROJECT_DIR\hecl.pdb" -p'
- 'copy Binaries\visigen.exe "$env:CI_PROJECT_DIR\visigen.exe"'
- 'pdbcopy Binaries\visigen.pdb "$env:CI_PROJECT_DIR\visigen.pdb" -p'
only:
- release
- dev
artifacts:
name: "urde-$env:CI_PIPELINE_ID-win32-x86_64-$env:URDE_VECTOR_ISA"
paths:
- urde.exe
- urde.pdb
- hecl.exe
- hecl.pdb
- visigen.exe
- visigen.pdb
expire_in: 1 week
build:win32:sse41:
<<: *win32_definition
variables:
<<: *build_variables
URDE_VECTOR_ISA: sse41
build:win32:avx:
<<: *win32_definition
variables:
<<: *build_variables
URDE_VECTOR_ISA: avx
deploy:
stage: deploy
only:
- release
- dev
dependencies: []
tags:
- server
variables:
GIT_STRATEGY: none
script:
- python3 /var/lib/gitlab-runner/deploy_urde.py $CI_PIPELINE_ID $CI_COMMIT_REF_NAME

View File

@ -11,59 +11,59 @@ find_package(Git)
if (GIT_FOUND) if (GIT_FOUND)
# make sure version information gets re-run when the current Git HEAD changes # make sure version information gets re-run when the current Git HEAD changes
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --git-path HEAD execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --git-path HEAD
OUTPUT_VARIABLE urde_git_head_filename OUTPUT_VARIABLE metaforce_git_head_filename
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${urde_git_head_filename}") set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${metaforce_git_head_filename}")
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --symbolic-full-name HEAD execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --symbolic-full-name HEAD
OUTPUT_VARIABLE urde_git_head_symbolic OUTPUT_VARIABLE metaforce_git_head_symbolic
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND ${GIT_EXECUTABLE} rev-parse --git-path ${urde_git_head_symbolic} COMMAND ${GIT_EXECUTABLE} rev-parse --git-path ${metaforce_git_head_symbolic}
OUTPUT_VARIABLE urde_git_head_symbolic_filename OUTPUT_VARIABLE metaforce_git_head_symbolic_filename
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${urde_git_head_symbolic_filename}") set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${metaforce_git_head_symbolic_filename}")
# defines URDE_WC_REVISION # defines METAFORCE_WC_REVISION
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse HEAD execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
OUTPUT_VARIABLE URDE_WC_REVISION OUTPUT_VARIABLE METAFORCE_WC_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
# defines URDE_WC_DESCRIBE # defines METAFORCE_WC_DESCRIBE
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --tag --long --dirty execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --tag --long --dirty
OUTPUT_VARIABLE URDE_WC_DESCRIBE OUTPUT_VARIABLE METAFORCE_WC_DESCRIBE
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
# remove hash (and trailing "-0" if needed) from description # remove hash (and trailing "-0" if needed) from description
string(REGEX REPLACE "(-0)?-[^-]+((-dirty)?)$" "\\2" URDE_WC_DESCRIBE "${URDE_WC_DESCRIBE}") string(REGEX REPLACE "(-0)?-[^-]+((-dirty)?)$" "\\2" METAFORCE_WC_DESCRIBE "${METAFORCE_WC_DESCRIBE}")
# defines URDE_WC_BRANCH # defines METAFORCE_WC_BRANCH
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
OUTPUT_VARIABLE URDE_WC_BRANCH OUTPUT_VARIABLE METAFORCE_WC_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
# defines URDE_WC_DATE # defines METAFORCE_WC_DATE
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} log -1 --format=%ad execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} log -1 --format=%ad
OUTPUT_VARIABLE URDE_WC_DATE OUTPUT_VARIABLE METAFORCE_WC_DATE
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
else () else ()
message(STATUS "Unable to find git, commit information will not be available") message(STATUS "Unable to find git, commit information will not be available")
endif () endif ()
if (URDE_WC_DESCRIBE) if (METAFORCE_WC_DESCRIBE)
string(REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+)\-([0-9]+).*" "\\1.\\2.\\3.\\4" URDE_VERSION_STRING "${URDE_WC_DESCRIBE}") string(REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+)\-([0-9]+).*" "\\1.\\2.\\3.\\4" METAFORCE_VERSION_STRING "${METAFORCE_WC_DESCRIBE}")
string(REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+).*" "\\1.\\2.\\3" URDE_VERSION_STRING "${URDE_VERSION_STRING}") string(REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+).*" "\\1.\\2.\\3" METAFORCE_VERSION_STRING "${METAFORCE_VERSION_STRING}")
else () else ()
set(URDE_WC_DESCRIBE "UNKNOWN-VERSION") set(METAFORCE_WC_DESCRIBE "UNKNOWN-VERSION")
set(URDE_VERSION_STRING "0.0.0") set(METAFORCE_VERSION_STRING "0.0.0")
endif () endif ()
string(TIMESTAMP CURRENT_YEAR "%Y") string(TIMESTAMP CURRENT_YEAR "%Y")
# Add version information to CI environment variables # Add version information to CI environment variables
if(DEFINED ENV{GITHUB_ENV}) if(DEFINED ENV{GITHUB_ENV})
file(APPEND "$ENV{GITHUB_ENV}" "URDE_VERSION=${URDE_WC_DESCRIBE}") file(APPEND "$ENV{GITHUB_ENV}" "METAFORCE_VERSION=${METAFORCE_WC_DESCRIBE}")
endif() endif()
message(STATUS "URDE version set to ${URDE_WC_DESCRIBE}") message(STATUS "Metaforce version set to ${METAFORCE_WC_DESCRIBE}")
project(urde LANGUAGES C CXX ASM VERSION ${URDE_VERSION_STRING}) project(metaforce LANGUAGES C CXX ASM VERSION ${METAFORCE_VERSION_STRING})
if (APPLE) if (APPLE)
set(PLATFORM_NAME macos) set(PLATFORM_NAME macos)
@ -82,8 +82,8 @@ if(APPLE AND NOT CMAKE_OSX_SYSROOT)
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
endif() endif()
option(URDE_CROSSCOMPILING "Don't build tools; attempt package import" OFF) option(METAFORCE_CROSSCOMPILING "Don't build tools; attempt package import" OFF)
if (URDE_CROSSCOMPILING) if (METAFORCE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING On) set(CMAKE_CROSSCOMPILING On)
endif() endif()
@ -107,19 +107,19 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/extern/sanitizers-cmake/cmake
find_package(Sanitizers) find_package(Sanitizers)
if (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL AMD64) if (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL AMD64)
set(URDE_VECTOR_ISA "sse41" CACHE STRING "Vector ISA to build for (sse2, sse3, sse41, avx, avx2)") set(METAFORCE_VECTOR_ISA "sse41" CACHE STRING "Vector ISA to build for (sse2, sse3, sse41, avx, avx2)")
endif () endif ()
if(MSVC) if(MSVC)
if(${URDE_VECTOR_ISA} STREQUAL "avx2") if(${METAFORCE_VECTOR_ISA} STREQUAL "avx2")
add_compile_options(/arch:AVX2) add_compile_options(/arch:AVX2)
add_compile_definitions(__SSE4_1__=1) add_compile_definitions(__SSE4_1__=1)
message(STATUS "Building with AVX2 Vector ISA") message(STATUS "Building with AVX2 Vector ISA")
elseif(${URDE_VECTOR_ISA} STREQUAL "avx") elseif(${METAFORCE_VECTOR_ISA} STREQUAL "avx")
add_compile_options(/arch:AVX) add_compile_options(/arch:AVX)
add_compile_definitions(__SSE4_1__=1) add_compile_definitions(__SSE4_1__=1)
message(STATUS "Building with AVX Vector ISA") message(STATUS "Building with AVX Vector ISA")
elseif(${URDE_VECTOR_ISA} STREQUAL "sse41") elseif(${METAFORCE_VECTOR_ISA} STREQUAL "sse41")
add_compile_definitions(__SSE4_1__=1) add_compile_definitions(__SSE4_1__=1)
# clang-cl 10 requires -msse4.1, may be fixed in newer versions? # clang-cl 10 requires -msse4.1, may be fixed in newer versions?
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL Clang) if("${CMAKE_CXX_COMPILER_ID}" STREQUAL Clang)
@ -132,7 +132,7 @@ if(MSVC)
if(${CMAKE_GENERATOR} MATCHES "Visual Studio*") if(${CMAKE_GENERATOR} MATCHES "Visual Studio*")
set(VS_OPTIONS "/MP") set(VS_OPTIONS "/MP")
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT urde) set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT metaforce)
endif() endif()
# Shaddup MSVC # Shaddup MSVC
@ -199,22 +199,22 @@ if(MSVC)
else() else()
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL x86_64) if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL x86_64)
if(${URDE_VECTOR_ISA} STREQUAL "native") if(${METAFORCE_VECTOR_ISA} STREQUAL "native")
add_compile_options(-march=native) add_compile_options(-march=native)
message(STATUS "Building with native ISA") message(STATUS "Building with native ISA")
elseif(${URDE_VECTOR_ISA} STREQUAL "avx2") elseif(${METAFORCE_VECTOR_ISA} STREQUAL "avx2")
add_compile_options(-mavx2) add_compile_options(-mavx2)
message(STATUS "Building with AVX2 Vector ISA") message(STATUS "Building with AVX2 Vector ISA")
elseif(${URDE_VECTOR_ISA} STREQUAL "avx") elseif(${METAFORCE_VECTOR_ISA} STREQUAL "avx")
add_compile_options(-mavx) add_compile_options(-mavx)
message(STATUS "Building with AVX Vector ISA") message(STATUS "Building with AVX Vector ISA")
elseif(${URDE_VECTOR_ISA} STREQUAL "sse41") elseif(${METAFORCE_VECTOR_ISA} STREQUAL "sse41")
add_compile_options(-msse4.1) add_compile_options(-msse4.1)
message(STATUS "Building with SSE4.1 Vector ISA") message(STATUS "Building with SSE4.1 Vector ISA")
elseif(${URDE_VECTOR_ISA} STREQUAL "sse3") elseif(${METAFORCE_VECTOR_ISA} STREQUAL "sse3")
add_compile_options(-msse3) add_compile_options(-msse3)
message(STATUS "Building with SSE3 Vector ISA") message(STATUS "Building with SSE3 Vector ISA")
elseif(${URDE_VECTOR_ISA} STREQUAL "sse2") elseif(${METAFORCE_VECTOR_ISA} STREQUAL "sse2")
add_compile_options(-msse2) add_compile_options(-msse2)
message(STATUS "Building with SSE2 Vector ISA") message(STATUS "Building with SSE2 Vector ISA")
else() else()
@ -233,7 +233,7 @@ else()
add_compile_options(-fno-asynchronous-unwind-tables) add_compile_options(-fno-asynchronous-unwind-tables)
endif() endif()
if(URDE_MSAN) if(METAFORCE_MSAN)
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-stdlib=libc++> -fsanitize=memory add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-stdlib=libc++> -fsanitize=memory
-fsanitize-memory-track-origins -fsanitize-recover=all) -fsanitize-memory-track-origins -fsanitize-recover=all)
endif() endif()
@ -252,7 +252,7 @@ else()
if(APPLE) if(APPLE)
add_compile_options(-Wno-error=deprecated-declarations add_compile_options(-Wno-error=deprecated-declarations
$<$<CONFIG:Release>:-flto=thin>) $<$<CONFIG:Release>:-flto=thin>)
if (URDE_ASAN) if (METAFORCE_ASAN)
add_compile_options(-fsanitize=address -fsanitize-address-use-after-scope) add_compile_options(-fsanitize=address -fsanitize-address-use-after-scope)
add_link_options(-fsanitize=address -fsanitize-address-use-after-scope) add_link_options(-fsanitize=address -fsanitize-address-use-after-scope)
endif () endif ()
@ -456,13 +456,13 @@ if (NOT WINDOWS_STORE AND NOT NX)
find_package(Qt6Widgets QUIET PATHS ${QT_HOMEBREW_PATH}) find_package(Qt6Widgets QUIET PATHS ${QT_HOMEBREW_PATH})
find_package(Qt5Widgets QUIET PATHS ${QT_HOMEBREW_PATH}) find_package(Qt5Widgets QUIET PATHS ${QT_HOMEBREW_PATH})
if (Qt6Widgets_FOUND) if (Qt6Widgets_FOUND)
message(STATUS "Qt6 found, hecl-gui will be built") message(STATUS "Qt6 found, metaforce-gui will be built")
add_subdirectory(hecl-gui) add_subdirectory(metaforce-gui)
elseif(Qt5Widgets_FOUND) elseif(Qt5Widgets_FOUND)
message(STATUS "Qt5 found, hecl-gui will be built") message(STATUS "Qt5 found, metaforce-gui will be built")
add_subdirectory(hecl-gui) add_subdirectory(metaforce-gui)
else() else()
message(STATUS "Qt5-6 not found, hecl-gui will not be built") message(STATUS "Qt5-6 not found, metaforce-gui will not be built")
endif() endif()
endif() endif()

2408
Doxyfile

File diff suppressed because it is too large Load Diff

View File

@ -63,7 +63,7 @@ elseif(UNIX)
set(URDE_PLAT_LIBS rt) set(URDE_PLAT_LIBS rt)
endif() endif()
add_executable(urde WIN32 add_executable(metaforce WIN32
main.cpp ${PLAT_SRCS} main.cpp ${PLAT_SRCS}
Space.hpp Space.cpp Space.hpp Space.cpp
SplashScreen.hpp SplashScreen.cpp SplashScreen.hpp SplashScreen.cpp
@ -77,13 +77,13 @@ add_executable(urde WIN32
Camera.hpp Camera.cpp Camera.hpp Camera.cpp
GameMode.hpp GameMode.cpp) GameMode.hpp GameMode.cpp)
target_include_directories(urde PUBLIC target_include_directories(metaforce PUBLIC
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/Runtime # FIXME atdna cmake issue ${CMAKE_SOURCE_DIR}/Runtime # FIXME atdna cmake issue
${CMAKE_BINARY_DIR}) ${CMAKE_BINARY_DIR})
target_link_libraries(urde target_link_libraries(metaforce
UrdeIcons UrdeIcons
UrdeBadging UrdeBadging
RuntimeCommon RuntimeCommon
@ -92,21 +92,21 @@ target_link_libraries(urde
kabufuda kabufuda
${URDE_PLAT_LIBS}) ${URDE_PLAT_LIBS})
target_atdna(urde atdna_Space.cpp Space.hpp) target_atdna(metaforce atdna_Space.cpp Space.hpp)
target_atdna(urde atdna_ResourceBrowser.cpp ResourceBrowser.hpp) target_atdna(metaforce atdna_ResourceBrowser.cpp ResourceBrowser.hpp)
target_atdna(urde atdna_ModelViewer.cpp ModelViewer.hpp) target_atdna(metaforce atdna_ModelViewer.cpp ModelViewer.hpp)
target_atdna(urde atdna_ParticleEditor.cpp ParticleEditor.hpp) target_atdna(metaforce atdna_ParticleEditor.cpp ParticleEditor.hpp)
target_atdna(urde atdna_InformationCenter.cpp InformationCenter.hpp) target_atdna(metaforce atdna_InformationCenter.cpp InformationCenter.hpp)
target_atdna(urde atdna_GameMode.cpp GameMode.hpp) target_atdna(metaforce atdna_GameMode.cpp GameMode.hpp)
if(COMMAND add_sanitizers) if(COMMAND add_sanitizers)
add_sanitizers(urde) add_sanitizers(metaforce)
endif() endif()
if (NOT WINDOWS_STORE) if (NOT WINDOWS_STORE)
add_dependencies(urde visigen hecl) add_dependencies(metaforce visigen hecl)
else() else()
set_property(TARGET urde PROPERTY VS_WINRT_COMPONENT TRUE) set_property(TARGET metaforce PROPERTY VS_WINRT_COMPONENT TRUE)
# This should match the Package.appxmanifest # This should match the Package.appxmanifest
set_property(TARGET urde PROPERTY VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION "10.0.14393.0") set_property(TARGET metaforce PROPERTY VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION "10.0.14393.0")
endif() endif()

View File

@ -65,7 +65,7 @@ bool ProjectManager::newProject(hecl::SystemStringView path) {
saveProject(); saveProject();
m_vm.m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("{} - URDE {} [{}]")), m_vm.m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("{} - URDE {} [{}]")),
m_proj->getProjectRootPath().getLastComponent(), URDE_WC_DESCRIBE_SYS, m_vm.platformName())); m_proj->getProjectRootPath().getLastComponent(), METAFORCE_WC_DESCRIBE_SYS, m_vm.platformName()));
m_vm.DismissSplash(); m_vm.DismissSplash();
m_vm.FadeInEditors(); m_vm.FadeInEditors();
@ -105,7 +105,7 @@ bool ProjectManager::openProject(hecl::SystemStringView path) {
saveProject(); saveProject();
m_vm.m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("{} - URDE {} [{}]")), m_vm.m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("{} - URDE {} [{}]")),
m_proj->getProjectRootPath().getLastComponent(), URDE_WC_DESCRIBE_SYS, m_proj->getProjectRootPath().getLastComponent(), METAFORCE_WC_DESCRIBE_SYS,
m_vm.platformName())); m_vm.platformName()));
m_vm.DismissSplash(); m_vm.DismissSplash();
m_vm.FadeInEditors(); m_vm.FadeInEditors();

View File

@ -33,12 +33,12 @@ SplashScreen::SplashScreen(ViewManager& vm, specter::ViewResources& res)
, m_newProjBind(*this) , m_newProjBind(*this)
, m_openProjBind(*this) , m_openProjBind(*this)
, m_extractProjBind(*this) { , m_extractProjBind(*this) {
if (URDE_WC_DATE[0] != '\0' && URDE_WC_REVISION[0] != '\0' && URDE_WC_BRANCH[0] != '\0') { if (METAFORCE_WC_DATE[0] != '\0' && METAFORCE_WC_REVISION[0] != '\0' && METAFORCE_WC_BRANCH[0] != '\0') {
m_buildInfoStr = fmt::format(FMT_STRING("{}: {}\n{}: {}\n{}: {}"), m_buildInfoStr = fmt::format(FMT_STRING("{}: {}\n{}: {}\n{}: {}"),
vm.translate<locale::version>(), URDE_WC_DESCRIBE, vm.translate<locale::version>(), METAFORCE_WC_DESCRIBE,
vm.translate<locale::branch>(), URDE_WC_BRANCH, vm.translate<locale::branch>(), METAFORCE_WC_BRANCH,
vm.translate<locale::commit>(), URDE_WC_REVISION/*, vm.translate<locale::commit>(), METAFORCE_WC_REVISION/*,
vm.translate<locale::date>(), URDE_WC_DATE*/); vm.translate<locale::date>(), METAFORCE_WC_DATE*/);
} }
m_openProjBind.m_openRecentMenuRoot.m_text = vm.translate<locale::recent_projects>(); m_openProjBind.m_openRecentMenuRoot.m_text = vm.translate<locale::recent_projects>();
m_textColorClear[3] = 0.0; m_textColorClear[3] = 0.0;

View File

@ -303,7 +303,8 @@ void ViewManager::init(boo::IApplication* app) {
m_pipelineConv = hecl::NewPipelineConverter(m_mainBooFactory); m_pipelineConv = hecl::NewPipelineConverter(m_mainBooFactory);
hecl::conv = m_pipelineConv.get(); hecl::conv = m_pipelineConv.get();
m_mainPlatformName = m_mainBooFactory->platformName(); m_mainPlatformName = m_mainBooFactory->platformName();
m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("URDE {} [{}]")), URDE_WC_DESCRIBE_SYS, m_mainPlatformName)); m_mainWindow->setTitle(
fmt::format(FMT_STRING(_SYS_STR("Metaforce {} [{}]")), METAFORCE_WC_DESCRIBE_SYS, m_mainPlatformName));
m_mainCommandQueue = m_mainWindow->getCommandQueue(); m_mainCommandQueue = m_mainWindow->getCommandQueue();
m_viewResources.init(m_mainBooFactory, &m_fontCache, &m_themeData, pixelFactor); m_viewResources.init(m_mainBooFactory, &m_fontCache, &m_themeData, pixelFactor);
InitializeIcons(m_viewResources); InitializeIcons(m_viewResources);

View File

@ -17,7 +17,7 @@ static void AthenaExc(athena::error::Level level, const char* file, const char*,
} }
namespace urde { namespace urde {
static logvisor::Module Log{"URDE"}; static logvisor::Module Log{"Metaforce"};
static hecl::SystemString CPUFeatureString(const zeus::CPUInfo& cpuInf) { static hecl::SystemString CPUFeatureString(const zeus::CPUInfo& cpuInf) {
hecl::SystemString features; hecl::SystemString features;
@ -128,11 +128,11 @@ static void SetupBasics(bool logging) {
auto result = zeus::validateCPU(); auto result = zeus::validateCPU();
if (!result.first) { if (!result.first) {
#if _WIN32 && !WINDOWS_STORE #if _WIN32 && !WINDOWS_STORE
std::wstring msg = fmt::format(FMT_STRING(L"ERROR: This build of URDE requires the following CPU features:\n{}\n"), std::wstring msg = fmt::format(FMT_STRING(L"ERROR: This build of Metaforce requires the following CPU features:\n{}\n"),
urde::CPUFeatureString(result.second)); urde::CPUFeatureString(result.second));
MessageBoxW(nullptr, msg.c_str(), L"CPU error", MB_OK | MB_ICONERROR); MessageBoxW(nullptr, msg.c_str(), L"CPU error", MB_OK | MB_ICONERROR);
#else #else
fmt::print(stderr, FMT_STRING("ERROR: This build of URDE requires the following CPU features:\n{}\n"), fmt::print(stderr, FMT_STRING("ERROR: This build of Metaforce requires the following CPU features:\n{}\n"),
urde::CPUFeatureString(result.second)); urde::CPUFeatureString(result.second));
#endif #endif
exit(1); exit(1);
@ -144,9 +144,9 @@ static void SetupBasics(bool logging) {
atSetExceptionHandler(AthenaExc); atSetExceptionHandler(AthenaExc);
#if SENTRY_ENABLED #if SENTRY_ENABLED
hecl::Runtime::FileStoreManager fileMgr{_SYS_STR("sentry-native-urde")}; hecl::Runtime::FileStoreManager fileMgr{_SYS_STR("sentry-native-metaforce")};
hecl::SystemUTF8Conv cacheDir{fileMgr.getStoreRoot()}; hecl::SystemUTF8Conv cacheDir{fileMgr.getStoreRoot()};
logvisor::RegisterSentry("urde", URDE_WC_DESCRIBE, cacheDir.c_str()); logvisor::RegisterSentry("metaforce", METAFORCE_WC_DESCRIBE, cacheDir.c_str());
#endif #endif
} }
@ -165,12 +165,12 @@ int main(int argc, const boo::SystemChar** argv)
#endif #endif
{ {
if (argc > 1 && !hecl::StrCmp(argv[1], _SYS_STR("--dlpackage"))) { if (argc > 1 && !hecl::StrCmp(argv[1], _SYS_STR("--dlpackage"))) {
fmt::print(FMT_STRING("{}\n"), URDE_DLPACKAGE); fmt::print(FMT_STRING("{}\n"), METAFORCE_DLPACKAGE);
return 100; return 100;
} }
SetupBasics(IsClientLoggingEnabled(argc, argv)); SetupBasics(IsClientLoggingEnabled(argc, argv));
hecl::Runtime::FileStoreManager fileMgr{_SYS_STR("urde")}; hecl::Runtime::FileStoreManager fileMgr{_SYS_STR("metaforce")};
hecl::CVarManager cvarMgr{fileMgr}; hecl::CVarManager cvarMgr{fileMgr};
hecl::CVarCommons cvarCmns{cvarMgr}; hecl::CVarCommons cvarCmns{cvarMgr};
@ -203,9 +203,9 @@ int main(int argc, const boo::SystemChar** argv)
hecl::SetCpuCountOverride(argc, argv); hecl::SetCpuCountOverride(argc, argv);
urde::Application appCb(fileMgr, cvarMgr, cvarCmns); urde::Application appCb(fileMgr, cvarMgr, cvarCmns);
int ret = boo::ApplicationRun(boo::IApplication::EPlatformType::Auto, appCb, _SYS_STR("urde"), _SYS_STR("URDE"), argc, int ret = boo::ApplicationRun(boo::IApplication::EPlatformType::Auto, appCb, _SYS_STR("metaforce"),
argv, appCb.getGraphicsApi(), appCb.getSamples(), appCb.getAnisotropy(), _SYS_STR("Metaforce"), argc, argv, appCb.getGraphicsApi(), appCb.getSamples(),
appCb.getDeepColor(), appCb.getTargetFrameTime(), false); appCb.getAnisotropy(), appCb.getDeepColor(), appCb.getTargetFrameTime(), false);
// printf("IM DYING!!\n"); // printf("IM DYING!!\n");
return ret; return ret;
} }

View File

@ -17,13 +17,13 @@ BEGIN
BLOCK "000004b0" BLOCK "000004b0"
BEGIN BEGIN
VALUE "CompanyName", "AxioDL" VALUE "CompanyName", "AxioDL"
VALUE "FileDescription", "URDE" VALUE "FileDescription", "Metaforce"
VALUE "FileVersion", "@URDE_WC_DESCRIBE@" VALUE "FileVersion", "@METAFORCE_WC_DESCRIBE@"
VALUE "LegalCopyright", "Copyright (C) 2015-@CURRENT_YEAR@ AxioDL Team" VALUE "LegalCopyright", "Copyright (C) 2015-@CURRENT_YEAR@ AxioDL Team"
VALUE "InternalName", "urde" VALUE "InternalName", "metaforce"
VALUE "OriginalFilename", "urde.exe" VALUE "OriginalFilename", "metaforce.exe"
VALUE "ProductName", "URDE" VALUE "ProductName", "Metaforce"
VALUE "ProductVersion", "@URDE_WC_DESCRIBE@" VALUE "ProductVersion", "@METAFORCE_WC_DESCRIBE@"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -1,6 +1,6 @@
The MIT License The MIT License
Copyright (c) 2015-2018 URDE Contributors Copyright (c) 2015-2021 Metaforce Contributors
Original Authors: Jack Andersen and Phillip "Antidote" Stephens Original Authors: Jack Andersen and Phillip "Antidote" Stephens
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@ -1,9 +1,11 @@
## URDE ## Metaforce
#### Formerly known as URDE
**Status:** Metroid Prime 1 In-Game (all retail GC & Wii versions) **Status:** Metroid Prime 1 In-Game (all retail GC & Wii versions)
**Official Discord Channel:** https://discord.gg/AMBVFuf **Official Discord Channel:** https://discord.gg/AMBVFuf
![URDE screenshot](assets/urde-screen1.png) ![Metaforce screenshot](assets/urde-screen1.png)
### Download ### Download
Precompiled builds of the command-line extraction utility (`hecl`) with embedded dataspec libraries are available at https://releases.axiodl.com. This will give you intermediate dumps of original formats as *blender* and *yaml* representations. Precompiled builds of the command-line extraction utility (`hecl`) with embedded dataspec libraries are available at https://releases.axiodl.com. This will give you intermediate dumps of original formats as *blender* and *yaml* representations.
@ -20,8 +22,8 @@ Everything else is much too experimental to make portable/stable release builds
* Extract ISO: `hecl extract [path].iso -o mp1` * Extract ISO: `hecl extract [path].iso -o mp1`
* `mp1` can be substituted with the directory name of your choice * `mp1` can be substituted with the directory name of your choice
* Repackage game for URDE: `cd mp1; hecl package` * Repackage game for Metaforce: `cd mp1; hecl package`
* Run URDE: `urde mp1/out` * Run Metaforce: `urde mp1/out`
### Usage (Wii versions) ### Usage (Wii versions)
@ -29,11 +31,11 @@ NFS files dumped from Metroid Prime Trilogy on Wii U VC can be used directly wit
* Extract ISO or NFS: `hecl extract [path].[iso/nfs] -o mpt` * Extract ISO or NFS: `hecl extract [path].[iso/nfs] -o mpt`
* `mpt` can be substituted with the directory name of your choice * `mpt` can be substituted with the directory name of your choice
* Repackage game for URDE: `cd mpt; hecl package MP1` * Repackage game for Metaforce: `cd mpt; hecl package MP1`
* The `MP1` parameter is important here. * The `MP1` parameter is important here.
* Run URDE: `urde mpt/out` * Run Metaforce: `urde mpt/out`
#### URDE options (non-exhaustive) #### Metaforce options (non-exhaustive)
* `-l`: Enable console logging * `-l`: Enable console logging
* `--warp [worldid] [areaid]`: Warp to a specific world/area. Example: `--warp 2 2` * `--warp [worldid] [areaid]`: Warp to a specific world/area. Example: `--warp 2 2`
@ -68,15 +70,15 @@ NFS files dumped from Metroid Prime Trilogy on Wii U VC can be used directly wit
### Prep Directions ### Prep Directions
```sh ```sh
git clone --recursive https://github.com/AxioDL/urde.git git clone --recursive https://github.com/AxioDL/metaforce.git
mkdir urde-build mkdir metaforce-build
cd urde-build cd metaforce-build
``` ```
### Update Directions ### Update Directions
```sh ```sh
cd urde cd metaforce
git pull git pull
git submodule update --recursive git submodule update --recursive
``` ```
@ -88,15 +90,15 @@ For Windows, it's recommended to use Visual Studio. See below.
#### ninja (Windows/macOS/Linux) #### ninja (Windows/macOS/Linux)
```sh ```sh
cd urde-build cd metaforce-build
cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja ../urde cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja ../metaforce
ninja ninja
``` ```
#### CMake options #### CMake options
- Build release optimized (better runtime performance): `-DCMAKE_BUILD_TYPE=Release` - Build release optimized (better runtime performance): `-DCMAKE_BUILD_TYPE=Release`
- Use clang+lld (faster linking): `-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++` - Use clang+lld (faster linking): `-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++`
- Optimize for current CPU (resulting binaries are not portable): `-DURDE_VECTOR_ISA=native` - Optimize for current CPU (resulting binaries are not portable): `-DMetaforce_VECTOR_ISA=native`
#### CLion (Windows/macOS/Linux) #### CLion (Windows/macOS/Linux)
*(main development / debugging IDE)* *(main development / debugging IDE)*
@ -115,17 +117,17 @@ Configure the desired CMake targets to build in the *Projects* area of the IDE.
Verify all required VS packages are installed from the above **Build Prerequisites** section. Verify all required VS packages are installed from the above **Build Prerequisites** section.
Open the `urde` directory in Visual Studio (imports CMake configuration). Open the `metaforce` directory in Visual Studio (imports CMake configuration).
MSVC and clang-cl configurations should import automatically. MSVC and clang-cl configurations should import automatically.
#### Xcode (macOS) #### Xcode (macOS)
```sh ```sh
cmake -G Xcode ../urde cmake -G Xcode ../metaforce
``` ```
Then open `urde.xcodeproj` Then open `metaforce.xcodeproj`
#### Optional Debug Models #### Optional Debug Models
We provide custom debug models for use to visualize certain aspects of the game such as lighting, in order to use We provide custom debug models for use to visualize certain aspects of the game such as lighting, in order to use
@ -135,4 +137,4 @@ existing HECL project (assuming paths are relative), then run the the following
```sh ```sh
hecl package MP1/URDE hecl package MP1/URDE
``` ```
This will cook and package the debug models and will automatically enable rendering of lights in a debug build of URDE. This will cook and package the debug models and will automatically enable rendering of lights in a debug build of Metaforce.

View File

@ -7,9 +7,8 @@ chmod +x linuxdeploy-$(uname -m).AppImage linuxdeploy-plugin-qt-$(uname -m).AppI
# Build AppImage # Build AppImage
mkdir -p appdir/usr/{bin,share/{applications,icons/hicolor}} mkdir -p appdir/usr/{bin,share/{applications,icons/hicolor}}
cp build/Binaries/{hecl,hecl-gui,urde,visigen} appdir/usr/bin cp build/Binaries/{hecl,metaforce-gui,metaforce,visigen} appdir/usr/bin
strip -S appdir/usr/bin/{hecl,hecl-gui,urde,visigen} strip -S appdir/usr/bin/{hecl,metaforce-gui,metaforce,visigen}
cp -r Editor/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} appdir/usr/share/icons/hicolor cp -r metaforce-gui/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} appdir/usr/share/icons/hicolor
cp Editor/platforms/freedesktop/urde.desktop appdir/usr/share/applications cp metaforce-gui/platforms/freedesktop/metaforce.desktop appdir/usr/share/applications
sed -i 's/Exec=.*/Exec=hecl-gui/' appdir/usr/share/applications/urde.desktop VERSION="$METAFORCE_VERSION" ./linuxdeploy-$(uname -m).AppImage --appdir appdir --plugin qt --output appimage
VERSION="$URDE_VERSION" ./linuxdeploy-$(uname -m).AppImage --appdir appdir --plugin qt --output appimage

View File

@ -1,7 +1,7 @@
#!/bin/bash -ex #!/bin/bash -ex
cd build/Binaries cd build/Binaries
for f in hecl hecl-gui urde visigen; do for f in hecl metaforce-gui metaforce visigen; do
objcopy --only-keep-debug --compress-debug-sections=zlib $f $f.dbg objcopy --only-keep-debug --compress-debug-sections=zlib $f $f.dbg
done done
strip -S hecl hecl-gui urde visigen strip -S hecl metaforce-gui metaforce visigen
sentry-cli upload-dif --org axiodl --project urde {hecl,hecl-gui,urde,visigen}{,.dbg} --include-sources sentry-cli upload-dif --org axiodl --project metaforce {hecl,metaforce-gui,metaforce,visigen}{,.dbg} --include-sources

View File

@ -1,8 +1,8 @@
#!/bin/bash -ex #!/bin/bash -ex
cd build/Binaries/hecl-gui.app/Contents/MacOS cd build/Binaries/metaforce-gui.app/Contents/MacOS
for f in hecl hecl-gui urde visigen; do for f in hecl metaforce-gui metaforce visigen; do
dsymutil $f dsymutil $f
done done
strip -S hecl hecl-gui urde visigen crashpad_handler strip -S hecl metaforce-gui metaforce visigen crashpad_handler
sentry-cli upload-dif --org axiodl --project urde {hecl,hecl-gui,urde,visigen}{,.dSYM} --include-sources sentry-cli upload-dif --org axiodl --project metaforce {hecl,metaforce-gui,metaforce,visigen}{,.dSYM} --include-sources
rm -r -- *.dSYM rm -r -- *.dSYM

View File

@ -1,18 +0,0 @@
add_executable(mkqticon mkqticon.c)
target_link_libraries(mkqticon ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
target_include_directories(mkqticon PRIVATE ${PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
macro(declare_qticon_target)
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/hecl-gui/platforms/freedesktop/mainicon_qt.bin
COMMAND $<TARGET_FILE:mkqticon>
ARGS ${CMAKE_BINARY_DIR}/hecl-gui/platforms/freedesktop/mainicon_qt.bin
DEPENDS
${CMAKE_SOURCE_DIR}/hecl-gui/platforms/freedesktop/128x128/apps/hecl.png
${CMAKE_SOURCE_DIR}/hecl-gui/platforms/freedesktop/64x64/apps/hecl.png
${CMAKE_SOURCE_DIR}/hecl-gui/platforms/freedesktop/48x48/apps/hecl.png
${CMAKE_SOURCE_DIR}/hecl-gui/platforms/freedesktop/32x32/apps/hecl.png
${CMAKE_SOURCE_DIR}/hecl-gui/platforms/freedesktop/16x16/apps/hecl.png
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/hecl-gui/platforms/freedesktop
COMMENT "Generating mainicon_qt.bin")
bintoc(mainicon_qt.cpp ${CMAKE_BINARY_DIR}/hecl-gui/platforms/freedesktop/mainicon_qt.bin MAINICON_QT)
endmacro()

View File

@ -1,33 +0,0 @@
#include "winver.h"
#define IDI_ICON1 101
IDI_ICON1 ICON DISCARDABLE "mainicon.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGS 0x0L
FILEFLAGSMASK 0x3fL
FILEOS 0x00040004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "000004b0"
BEGIN
VALUE "CompanyName", "Antidote / Jackoalan"
VALUE "FileDescription", "HECL"
VALUE "FileVersion", "BETA"
VALUE "LegalCopyright", "Copyright (C) 2015-2018 Antidote / Jackoalan"
VALUE "InternalName", "hecl"
VALUE "OriginalFilename", "hecl.exe"
VALUE "ProductName", "HECL"
VALUE "ProductVersion", "BETA"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0, 1200
END
END

View File

@ -283,7 +283,7 @@ int main(int argc, const char** argv)
#endif #endif
{ {
if (argc > 1 && !hecl::StrCmp(argv[1], _SYS_STR("--dlpackage"))) { if (argc > 1 && !hecl::StrCmp(argv[1], _SYS_STR("--dlpackage"))) {
fmt::print(FMT_STRING("{}\n"), URDE_DLPACKAGE); fmt::print(FMT_STRING("{}\n"), METAFORCE_DLPACKAGE);
return 100; return 100;
} }
@ -313,7 +313,7 @@ int main(int argc, const char** argv)
#if SENTRY_ENABLED #if SENTRY_ENABLED
hecl::Runtime::FileStoreManager fileMgr{_SYS_STR("sentry-native-hecl")}; hecl::Runtime::FileStoreManager fileMgr{_SYS_STR("sentry-native-hecl")};
hecl::SystemUTF8Conv cacheDir{fileMgr.getStoreRoot()}; hecl::SystemUTF8Conv cacheDir{fileMgr.getStoreRoot()};
logvisor::RegisterSentry("hecl", URDE_WC_DESCRIBE, cacheDir.c_str()); logvisor::RegisterSentry("hecl", METAFORCE_WC_DESCRIBE, cacheDir.c_str());
#endif #endif
/* Basic usage check */ /* Basic usage check */

View File

@ -2,11 +2,11 @@
############################################################### ###############################################################
# Uses LXD to create an Ubuntu focal container and produce # # Uses LXD to create an Ubuntu focal container and produce #
# a reasonably portable AppImage of URDE. # # a reasonably portable AppImage of Metaforce. #
############################################################### ###############################################################
VERSION=${VERSION:-local} VERSION=${VERSION:-local}
CONTAINER_NAME=urde-ci CONTAINER_NAME=metaforce-ci
# Set up container, deleting existing if necessary # Set up container, deleting existing if necessary
if lxc info $CONTAINER_NAME >& /dev/null if lxc info $CONTAINER_NAME >& /dev/null
@ -19,7 +19,7 @@ lxc init ubuntu:20.04 $CONTAINER_NAME
lxc file push - $CONTAINER_NAME/root/dobuild.sh <<END lxc file push - $CONTAINER_NAME/root/dobuild.sh <<END
set -e set -e
# URDE build script for Ubuntu 20.04 LTS (Focal) # Metaforce build script for Ubuntu 20.04 LTS (Focal)
# Install build dependencies # Install build dependencies
apt update apt update
@ -36,27 +36,26 @@ curl -OL https://github.com/encounter/linuxdeploy-plugin-qt/releases/download/co
chmod +x linuxdeploy-$(uname -m).AppImage linuxdeploy-plugin-qt-$(uname -m).AppImage chmod +x linuxdeploy-$(uname -m).AppImage linuxdeploy-plugin-qt-$(uname -m).AppImage
# Cleanup # Cleanup
rm -rf urde{-build,-appdir,} rm -rf metaforce{-build,-appdir,}
# Clone repository # Clone repository
git clone https://github.com/AxioDL/urde.git --recursive git clone https://github.com/AxioDL/metaforce.git --recursive
# Build # Build
mkdir -p urde{-build,-appdir} mkdir -p metaforce{-build,-appdir}
pushd urde-build pushd metaforce-build
cmake -GNinja -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ cmake -GNinja -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
-DURDE_DLPACKAGE=urde-$VERSION-linux-$(uname -m) -DURDE_VECTOR_ISA=sse41 \ /metaforce
/urde ninja hecl metaforce-gui metaforce visigen
ninja hecl hecl-gui urde visigen
popd popd
mkdir -p /urde-appdir/usr/{bin,share/{applications,icons/hicolor}} mkdir -p /metaforce-appdir/usr/{bin,share/{applications,icons/hicolor}}
cp /urde-build/Binaries/{hecl,hecl-gui,urde,visigen} /urde-appdir/usr/bin cp /metaforce-build/Binaries/{hecl,metaforce-gui,metaforce,visigen} /metaforce-appdir/usr/bin
strip -s /urde-appdir/usr/bin/{hecl,hecl-gui,urde,visigen} strip -s /metaforce-appdir/usr/bin/{hecl,metaforce-gui,metaforce,visigen}
cp -r /urde/Editor/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} /urde-appdir/usr/share/icons/hicolor cp -r /metaforce/Editor/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} /metaforce-appdir/usr/share/icons/hicolor
cp /urde/Editor/platforms/freedesktop/urde.desktop /urde-appdir/usr/share/applications cp /metaforce/Editor/platforms/freedesktop/metaforce.desktop /metaforce-appdir/usr/share/applications
sed -i 's/Exec=.*/Exec=hecl-gui/' /urde-appdir/usr/share/applications/urde.desktop sed -i 's/Exec=.*/Exec=metaforce-gui/' /metaforce-appdir/usr/share/applications/metaforce.desktop
VERSION=$VERSION /linuxdeploy-$(uname -m).AppImage --appdir /urde-appdir --plugin qt --output appimage VERSION=$VERSION /linuxdeploy-$(uname -m).AppImage --appdir /metaforce-appdir --plugin qt --output appimage
END END
# Start container # Start container

View File

@ -26,7 +26,7 @@ set(BUILD_SHARED_LIBS OFF CACHE BOOL "")
set(QUAZIP_INSTALL OFF CACHE BOOL "") set(QUAZIP_INSTALL OFF CACHE BOOL "")
add_subdirectory(quazip) add_subdirectory(quazip)
add_executable(hecl-gui WIN32 MACOSX_BUNDLE add_executable(metaforce-gui WIN32 MACOSX_BUNDLE
#ArgumentEditor.cpp #ArgumentEditor.cpp
#ArgumentEditor.hpp #ArgumentEditor.hpp
#ArgumentEditor.ui #ArgumentEditor.ui
@ -59,7 +59,7 @@ add_executable(hecl-gui WIN32 MACOSX_BUNDLE
${QUAZIP_SRCS} ${QUAZIP_SRCS}
) )
target_compile_definitions(hecl-gui PRIVATE target_compile_definitions(metaforce-gui PRIVATE
# Disable implicit conversions from ASCII to QString. # Disable implicit conversions from ASCII to QString.
-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_ASCII
-DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_TO_ASCII
@ -97,23 +97,23 @@ else ()
Qt5::Xml) Qt5::Xml)
# Check for static linking # Check for static linking
if (WIN32) if (WIN32)
get_target_property(HECL_RUNTIME_LIBRARY hecl-gui MSVC_RUNTIME_LIBRARY) get_target_property(_MSVC_RUNTIME_LIBRARY metaforce-gui MSVC_RUNTIME_LIBRARY)
if (NOT "${HECL_RUNTIME_LIBRARY}" MATCHES "DLL$") if (NOT "${_MSVC_RUNTIME_LIBRARY}" MATCHES "DLL$")
list(APPEND Qt_LIBS Qt5::QWindowsIntegrationPlugin) list(APPEND Qt_LIBS Qt5::QWindowsIntegrationPlugin)
endif () endif ()
endif () endif ()
endif () endif ()
target_link_libraries(hecl-gui PRIVATE target_link_libraries(metaforce-gui PRIVATE
${Qt_LIBS} ${Qt_LIBS}
hecl-light hecl-light
zeus zeus
QuaZip::QuaZip) QuaZip::QuaZip)
target_include_directories(hecl-gui PRIVATE quazip/quazip) target_include_directories(metaforce-gui PRIVATE quazip/quazip)
target_compile_definitions(hecl-gui PRIVATE QUAZIP_STATIC=1) target_compile_definitions(metaforce-gui PRIVATE QUAZIP_STATIC=1)
if (APPLE) if (APPLE)
target_sources(hecl-gui PRIVATE target_sources(metaforce-gui PRIVATE
MacOSSystemVersion.hpp MacOSSystemVersion.hpp
MacOSSystemVersion.mm MacOSSystemVersion.mm
) )
@ -121,40 +121,40 @@ if (APPLE)
PROPERTIES COMPILE_FLAGS -fobjc-arc PROPERTIES COMPILE_FLAGS -fobjc-arc
) )
find_library(FOUNDATION_LIBRARY Foundation) find_library(FOUNDATION_LIBRARY Foundation)
target_link_libraries(hecl-gui PRIVATE ${FOUNDATION_LIBRARY}) target_link_libraries(metaforce-gui PRIVATE ${FOUNDATION_LIBRARY})
elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
target_link_libraries(hecl-gui PRIVATE target_link_libraries(metaforce-gui PRIVATE
dl dl
pthread pthread
) )
endif () endif ()
if (WIN32) if (WIN32)
target_sources(hecl-gui PRIVATE target_sources(metaforce-gui PRIVATE
platforms/win/hecl-gui.manifest platforms/win/metaforce-gui.manifest
platforms/win/hecl-gui.rc platforms/win/metaforce-gui.rc
) )
target_link_libraries(hecl-gui PRIVATE target_link_libraries(metaforce-gui PRIVATE
Version) Version)
elseif (APPLE) elseif (APPLE)
set_target_properties(hecl-gui PROPERTIES set_target_properties(metaforce-gui PROPERTIES
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/platforms/mac/Info.plist" MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/platforms/mac/Info.plist"
) )
target_sources(hecl-gui PRIVATE platforms/mac/mainicon.icns) target_sources(metaforce-gui PRIVATE platforms/mac/mainicon.icns)
set_source_files_properties(platforms/mac/mainicon.icns PROPERTIES set_source_files_properties(platforms/mac/mainicon.icns PROPERTIES
MACOSX_PACKAGE_LOCATION Resources MACOSX_PACKAGE_LOCATION Resources
) )
add_custom_command( add_custom_command(
TARGET hecl-gui POST_BUILD TARGET metaforce-gui POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:urde> $<TARGET_FILE_DIR:hecl-gui> COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:urde> $<TARGET_FILE_DIR:metaforce-gui>
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:hecl> $<TARGET_FILE_DIR:hecl-gui> COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:hecl> $<TARGET_FILE_DIR:metaforce-gui>
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:visigen> $<TARGET_FILE_DIR:hecl-gui> COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:visigen> $<TARGET_FILE_DIR:metaforce-gui>
DEPENDS urde hecl visigen DEPENDS urde hecl visigen
) )
if (NOT "${SENTRY_DSN}" STREQUAL "") if (NOT "${SENTRY_DSN}" STREQUAL "")
add_custom_command( add_custom_command(
TARGET hecl-gui POST_BUILD TARGET metaforce-gui POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:crashpad_handler> $<TARGET_FILE_DIR:hecl-gui> COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:crashpad_handler> $<TARGET_FILE_DIR:metaforce-gui>
DEPENDS crashpad_handler DEPENDS crashpad_handler
) )
endif() endif()
@ -162,12 +162,12 @@ endif ()
add_subdirectory(platforms/freedesktop) add_subdirectory(platforms/freedesktop)
declare_qticon_target() declare_qticon_target()
target_sources(hecl-gui PRIVATE mainicon_qt.cpp) target_sources(metaforce-gui PRIVATE mainicon_qt.cpp)
if (COMMAND add_sanitizers) if (COMMAND add_sanitizers)
add_sanitizers(hecl-gui) add_sanitizers(metaforce-gui)
endif () endif ()
if (NOT MSVC) if (NOT MSVC)
target_compile_options(hecl-gui PRIVATE -Wno-misleading-indentation) target_compile_options(metaforce-gui PRIVATE -Wno-misleading-indentation)
endif () endif ()

View File

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 281 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -0,0 +1,18 @@
add_executable(mkqticon mkqticon.c)
target_link_libraries(mkqticon ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
target_include_directories(mkqticon PRIVATE ${PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
macro(declare_qticon_target)
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/metaforce-gui/platforms/freedesktop/mainicon_qt.bin
COMMAND $<TARGET_FILE:mkqticon>
ARGS ${CMAKE_BINARY_DIR}/metaforce-gui/platforms/freedesktop/mainicon_qt.bin
DEPENDS
${CMAKE_SOURCE_DIR}/metaforce-gui/platforms/freedesktop/128x128/apps/hecl.png
${CMAKE_SOURCE_DIR}/metaforce-gui/platforms/freedesktop/64x64/apps/hecl.png
${CMAKE_SOURCE_DIR}/metaforce-gui/platforms/freedesktop/48x48/apps/hecl.png
${CMAKE_SOURCE_DIR}/metaforce-gui/platforms/freedesktop/32x32/apps/hecl.png
${CMAKE_SOURCE_DIR}/metaforce-gui/platforms/freedesktop/16x16/apps/hecl.png
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/metaforce-gui/platforms/freedesktop
COMMENT "Generating mainicon_qt.bin")
bintoc(mainicon_qt.cpp ${CMAKE_BINARY_DIR}/metaforce-gui/platforms/freedesktop/mainicon_qt.bin MAINICON_QT)
endmacro()

View File

@ -1,9 +1,9 @@
[Desktop Entry] [Desktop Entry]
Name=HECL Name=Metaforce
GenericName=Game Data Prep Tool GenericName=Game Data Prep Tool
Comment=Prepare Game Data for URDE Comment=Prepare Game Data for Metaforce
Exec=hecl-gui Exec=metaforce-gui
Icon=hecl Icon=metaforce-gui
Terminal=false Terminal=false
Type=Application Type=Application
Categories=Graphics;3DGraphics; Categories=Graphics;3DGraphics;

View File

@ -3,11 +3,11 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>hecl-gui</string> <string>metaforce-gui</string>
<key>CFBundleGetInfoString</key> <key>CFBundleGetInfoString</key>
<string>@URDE_WC_DESCRIBE@</string> <string>@METAFORCE_WC_DESCRIBE@</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>@URDE_WC_DESCRIBE@</string> <string>@METAFORCE_WC_DESCRIBE@</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>2015-@CURRENT_YEAR@ AxioDL Team</string> <string>2015-@CURRENT_YEAR@ AxioDL Team</string>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
@ -17,9 +17,9 @@
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>URDE</string> <string>Metaforce</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>@URDE_WC_DESCRIBE@</string> <string>@METAFORCE_WC_DESCRIBE@</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>

View File

Before

Width:  |  Height:  |  Size: 352 KiB

After

Width:  |  Height:  |  Size: 352 KiB

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<description>HECL-GUI</description> <description>Metaforce</description>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application> <application>
<!-- Windows 10 --> <!-- Windows 10 -->

View File

@ -0,0 +1,33 @@
#include "winver.h"
#define IDI_ICON1 101
IDI_ICON1 ICON DISCARDABLE "mainicon.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGS 0x0L
FILEFLAGSMASK 0x3fL
FILEOS 0x00040004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "000004b0"
BEGIN
VALUE "CompanyName", "AxioDL"
VALUE "FileDescription", "Metaforce"
VALUE "FileVersion", "@METAFORCE_WC_DESCRIBE@"
VALUE "LegalCopyright", "Copyright (C) 2015-@CURRENT_YEAR@ AxioDL Team"
VALUE "InternalName", "metaforce-gui"
VALUE "OriginalFilename", "metaforce-gui.exe"
VALUE "ProductName", "Metaforce"
VALUE "ProductVersion", "@METAFORCE_WC_DESCRIBE@"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0, 1200
END
END

Some files were not shown because too many files have changed in this diff Show More