Start renaming project to Metaforce
|
@ -78,9 +78,9 @@ jobs:
|
|||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: urde-${{env.URDE_VERSION}}-linux-${{matrix.cc}}-x86_64
|
||||
name: metaforce-${{env.METAFORCE_VERSION}}-linux-${{matrix.cc}}-x86_64
|
||||
path: |
|
||||
URDE-*.AppImage
|
||||
Metaforce-*.AppImage
|
||||
build/Binaries/*.dbg
|
||||
|
||||
build-macos:
|
||||
|
@ -128,12 +128,12 @@ jobs:
|
|||
- name: Deploy & codesign application
|
||||
working-directory: build/Binaries
|
||||
run: |
|
||||
mv hecl-gui.app URDE.app
|
||||
for i in visigen hecl urde crashpad_handler; do
|
||||
codesign --timestamp --options runtime -s "${{secrets.MACOS_CODESIGN_IDENT}}" URDE.app/Contents/MacOS/$i
|
||||
mv metaforce-gui.app Metaforce.app
|
||||
for i in visigen hecl metaforce crashpad_handler; do
|
||||
codesign --timestamp --options runtime -s "${{secrets.MACOS_CODESIGN_IDENT}}" Metaforce.app/Contents/MacOS/$i
|
||||
done
|
||||
macdeployqt URDE.app -sign-for-notarization="${{secrets.MACOS_CODESIGN_IDENT}}" -no-strip
|
||||
create-dmg URDE.app --identity="${{secrets.MACOS_CODESIGN_IDENT}}"
|
||||
macdeployqt Metaforce.app -sign-for-notarization="${{secrets.MACOS_CODESIGN_IDENT}}" -no-strip
|
||||
create-dmg Metaforce.app --identity="${{secrets.MACOS_CODESIGN_IDENT}}"
|
||||
xcrun altool -t osx -f *.dmg --primary-bundle-id com.axiodl.URDE --notarize-app \
|
||||
-u "${{secrets.MACOS_ASC_USERNAME}}" -p "${{secrets.MACOS_ASC_PASSWORD}}" \
|
||||
--team-id "${{secrets.MACOS_ASC_TEAM_ID}}"
|
||||
|
@ -141,7 +141,7 @@ jobs:
|
|||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: urde-${{env.URDE_VERSION}}-macos-appleclang-x86_64
|
||||
name: metaforce-${{env.METAFORCE_VERSION}}-macos-appleclang-x86_64
|
||||
path: build/Binaries/*.dmg
|
||||
|
||||
build-windows-msvc:
|
||||
|
@ -218,21 +218,21 @@ jobs:
|
|||
SENTRY_AUTH_TOKEN: ${{secrets.SENTRY_AUTH_TOKEN}}
|
||||
SENTRY_URL: ${{secrets.SENTRY_URL}}
|
||||
run: |
|
||||
& "$env:RUNNER_WORKSPACE\temp\sentry-cli.exe" upload-dif --org axiodl --project urde --include-sources `
|
||||
urde.exe urde.pdb hecl.exe hecl.pdb hecl-gui.exe hecl-gui.pdb visigen.exe visigen.pdb
|
||||
& "$env:RUNNER_WORKSPACE\temp\sentry-cli.exe" upload-dif --org axiodl --project metaforce --include-sources `
|
||||
metaforce.exe metaforce.pdb hecl.exe hecl.pdb metaforce-gui.exe metaforce-gui.pdb visigen.exe visigen.pdb
|
||||
|
||||
- name: Compress PDBs
|
||||
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
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: urde-${{env.URDE_VERSION}}-win32-msvc-x86_64
|
||||
name: metaforce-${{env.METAFORCE_VERSION}}-win32-msvc-x86_64
|
||||
path: |
|
||||
build/Binaries/urde.exe
|
||||
build/Binaries/metaforce.exe
|
||||
build/Binaries/metaforce-gui.exe
|
||||
build/Binaries/hecl.exe
|
||||
build/Binaries/hecl-gui.exe
|
||||
build/Binaries/visigen.exe
|
||||
build/Binaries/crashpad_handler.exe
|
||||
build/Binaries/debug.7z
|
||||
|
@ -304,16 +304,16 @@ jobs:
|
|||
|
||||
- name: Compress PDBs
|
||||
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
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: urde-${{env.URDE_VERSION}}-win32-clang-x86_64
|
||||
name: metaforce-${{env.METAFORCE_VERSION}}-win32-clang-x86_64
|
||||
path: |
|
||||
build/Binaries/urde.exe
|
||||
build/Binaries/metaforce.exe
|
||||
build/Binaries/metaforce-gui.exe
|
||||
build/Binaries/hecl.exe
|
||||
build/Binaries/hecl-gui.exe
|
||||
build/Binaries/visigen.exe
|
||||
build/Binaries/crashpad_handler.exe
|
||||
build/Binaries/debug.7z
|
||||
|
|
137
.gitlab-ci.yml
|
@ -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
|
||||
|
|
@ -11,59 +11,59 @@ find_package(Git)
|
|||
if (GIT_FOUND)
|
||||
# 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
|
||||
OUTPUT_VARIABLE urde_git_head_filename
|
||||
OUTPUT_VARIABLE metaforce_git_head_filename
|
||||
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
|
||||
OUTPUT_VARIABLE urde_git_head_symbolic
|
||||
OUTPUT_VARIABLE metaforce_git_head_symbolic
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMAND ${GIT_EXECUTABLE} rev-parse --git-path ${urde_git_head_symbolic}
|
||||
OUTPUT_VARIABLE urde_git_head_symbolic_filename
|
||||
COMMAND ${GIT_EXECUTABLE} rev-parse --git-path ${metaforce_git_head_symbolic}
|
||||
OUTPUT_VARIABLE metaforce_git_head_symbolic_filename
|
||||
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
|
||||
OUTPUT_VARIABLE URDE_WC_REVISION
|
||||
OUTPUT_VARIABLE METAFORCE_WC_REVISION
|
||||
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
|
||||
OUTPUT_VARIABLE URDE_WC_DESCRIBE
|
||||
OUTPUT_VARIABLE METAFORCE_WC_DESCRIBE
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
# 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
|
||||
OUTPUT_VARIABLE URDE_WC_BRANCH
|
||||
OUTPUT_VARIABLE METAFORCE_WC_BRANCH
|
||||
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
|
||||
OUTPUT_VARIABLE URDE_WC_DATE
|
||||
OUTPUT_VARIABLE METAFORCE_WC_DATE
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
else ()
|
||||
message(STATUS "Unable to find git, commit information will not be available")
|
||||
endif ()
|
||||
|
||||
if (URDE_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]+).*" "\\1.\\2.\\3" URDE_VERSION_STRING "${URDE_VERSION_STRING}")
|
||||
if (METAFORCE_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" METAFORCE_VERSION_STRING "${METAFORCE_VERSION_STRING}")
|
||||
else ()
|
||||
set(URDE_WC_DESCRIBE "UNKNOWN-VERSION")
|
||||
set(URDE_VERSION_STRING "0.0.0")
|
||||
set(METAFORCE_WC_DESCRIBE "UNKNOWN-VERSION")
|
||||
set(METAFORCE_VERSION_STRING "0.0.0")
|
||||
endif ()
|
||||
|
||||
string(TIMESTAMP CURRENT_YEAR "%Y")
|
||||
|
||||
# Add version information to CI environment variables
|
||||
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()
|
||||
message(STATUS "URDE version set to ${URDE_WC_DESCRIBE}")
|
||||
project(urde LANGUAGES C CXX ASM VERSION ${URDE_VERSION_STRING})
|
||||
message(STATUS "Metaforce version set to ${METAFORCE_WC_DESCRIBE}")
|
||||
project(metaforce LANGUAGES C CXX ASM VERSION ${METAFORCE_VERSION_STRING})
|
||||
|
||||
if (APPLE)
|
||||
set(PLATFORM_NAME macos)
|
||||
|
@ -82,8 +82,8 @@ if(APPLE AND NOT CMAKE_OSX_SYSROOT)
|
|||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif()
|
||||
|
||||
option(URDE_CROSSCOMPILING "Don't build tools; attempt package import" OFF)
|
||||
if (URDE_CROSSCOMPILING)
|
||||
option(METAFORCE_CROSSCOMPILING "Don't build tools; attempt package import" OFF)
|
||||
if (METAFORCE_CROSSCOMPILING)
|
||||
set(CMAKE_CROSSCOMPILING On)
|
||||
endif()
|
||||
|
||||
|
@ -107,19 +107,19 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/extern/sanitizers-cmake/cmake
|
|||
find_package(Sanitizers)
|
||||
|
||||
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 ()
|
||||
|
||||
if(MSVC)
|
||||
if(${URDE_VECTOR_ISA} STREQUAL "avx2")
|
||||
if(${METAFORCE_VECTOR_ISA} STREQUAL "avx2")
|
||||
add_compile_options(/arch:AVX2)
|
||||
add_compile_definitions(__SSE4_1__=1)
|
||||
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_definitions(__SSE4_1__=1)
|
||||
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)
|
||||
# clang-cl 10 requires -msse4.1, may be fixed in newer versions?
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL Clang)
|
||||
|
@ -132,7 +132,7 @@ if(MSVC)
|
|||
|
||||
if(${CMAKE_GENERATOR} MATCHES "Visual Studio*")
|
||||
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()
|
||||
|
||||
# Shaddup MSVC
|
||||
|
@ -199,22 +199,22 @@ if(MSVC)
|
|||
|
||||
else()
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL x86_64)
|
||||
if(${URDE_VECTOR_ISA} STREQUAL "native")
|
||||
if(${METAFORCE_VECTOR_ISA} STREQUAL "native")
|
||||
add_compile_options(-march=native)
|
||||
message(STATUS "Building with native ISA")
|
||||
elseif(${URDE_VECTOR_ISA} STREQUAL "avx2")
|
||||
elseif(${METAFORCE_VECTOR_ISA} STREQUAL "avx2")
|
||||
add_compile_options(-mavx2)
|
||||
message(STATUS "Building with AVX2 Vector ISA")
|
||||
elseif(${URDE_VECTOR_ISA} STREQUAL "avx")
|
||||
elseif(${METAFORCE_VECTOR_ISA} STREQUAL "avx")
|
||||
add_compile_options(-mavx)
|
||||
message(STATUS "Building with AVX Vector ISA")
|
||||
elseif(${URDE_VECTOR_ISA} STREQUAL "sse41")
|
||||
elseif(${METAFORCE_VECTOR_ISA} STREQUAL "sse41")
|
||||
add_compile_options(-msse4.1)
|
||||
message(STATUS "Building with SSE4.1 Vector ISA")
|
||||
elseif(${URDE_VECTOR_ISA} STREQUAL "sse3")
|
||||
elseif(${METAFORCE_VECTOR_ISA} STREQUAL "sse3")
|
||||
add_compile_options(-msse3)
|
||||
message(STATUS "Building with SSE3 Vector ISA")
|
||||
elseif(${URDE_VECTOR_ISA} STREQUAL "sse2")
|
||||
elseif(${METAFORCE_VECTOR_ISA} STREQUAL "sse2")
|
||||
add_compile_options(-msse2)
|
||||
message(STATUS "Building with SSE2 Vector ISA")
|
||||
else()
|
||||
|
@ -233,7 +233,7 @@ else()
|
|||
add_compile_options(-fno-asynchronous-unwind-tables)
|
||||
endif()
|
||||
|
||||
if(URDE_MSAN)
|
||||
if(METAFORCE_MSAN)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-stdlib=libc++> -fsanitize=memory
|
||||
-fsanitize-memory-track-origins -fsanitize-recover=all)
|
||||
endif()
|
||||
|
@ -252,7 +252,7 @@ else()
|
|||
if(APPLE)
|
||||
add_compile_options(-Wno-error=deprecated-declarations
|
||||
$<$<CONFIG:Release>:-flto=thin>)
|
||||
if (URDE_ASAN)
|
||||
if (METAFORCE_ASAN)
|
||||
add_compile_options(-fsanitize=address -fsanitize-address-use-after-scope)
|
||||
add_link_options(-fsanitize=address -fsanitize-address-use-after-scope)
|
||||
endif ()
|
||||
|
@ -456,13 +456,13 @@ if (NOT WINDOWS_STORE AND NOT NX)
|
|||
find_package(Qt6Widgets QUIET PATHS ${QT_HOMEBREW_PATH})
|
||||
find_package(Qt5Widgets QUIET PATHS ${QT_HOMEBREW_PATH})
|
||||
if (Qt6Widgets_FOUND)
|
||||
message(STATUS "Qt6 found, hecl-gui will be built")
|
||||
add_subdirectory(hecl-gui)
|
||||
message(STATUS "Qt6 found, metaforce-gui will be built")
|
||||
add_subdirectory(metaforce-gui)
|
||||
elseif(Qt5Widgets_FOUND)
|
||||
message(STATUS "Qt5 found, hecl-gui will be built")
|
||||
add_subdirectory(hecl-gui)
|
||||
message(STATUS "Qt5 found, metaforce-gui will be built")
|
||||
add_subdirectory(metaforce-gui)
|
||||
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()
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ elseif(UNIX)
|
|||
set(URDE_PLAT_LIBS rt)
|
||||
endif()
|
||||
|
||||
add_executable(urde WIN32
|
||||
add_executable(metaforce WIN32
|
||||
main.cpp ${PLAT_SRCS}
|
||||
Space.hpp Space.cpp
|
||||
SplashScreen.hpp SplashScreen.cpp
|
||||
|
@ -77,13 +77,13 @@ add_executable(urde WIN32
|
|||
Camera.hpp Camera.cpp
|
||||
GameMode.hpp GameMode.cpp)
|
||||
|
||||
target_include_directories(urde PUBLIC
|
||||
target_include_directories(metaforce PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_SOURCE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/Runtime # FIXME atdna cmake issue
|
||||
${CMAKE_BINARY_DIR})
|
||||
|
||||
target_link_libraries(urde
|
||||
target_link_libraries(metaforce
|
||||
UrdeIcons
|
||||
UrdeBadging
|
||||
RuntimeCommon
|
||||
|
@ -92,21 +92,21 @@ target_link_libraries(urde
|
|||
kabufuda
|
||||
${URDE_PLAT_LIBS})
|
||||
|
||||
target_atdna(urde atdna_Space.cpp Space.hpp)
|
||||
target_atdna(urde atdna_ResourceBrowser.cpp ResourceBrowser.hpp)
|
||||
target_atdna(urde atdna_ModelViewer.cpp ModelViewer.hpp)
|
||||
target_atdna(urde atdna_ParticleEditor.cpp ParticleEditor.hpp)
|
||||
target_atdna(urde atdna_InformationCenter.cpp InformationCenter.hpp)
|
||||
target_atdna(urde atdna_GameMode.cpp GameMode.hpp)
|
||||
target_atdna(metaforce atdna_Space.cpp Space.hpp)
|
||||
target_atdna(metaforce atdna_ResourceBrowser.cpp ResourceBrowser.hpp)
|
||||
target_atdna(metaforce atdna_ModelViewer.cpp ModelViewer.hpp)
|
||||
target_atdna(metaforce atdna_ParticleEditor.cpp ParticleEditor.hpp)
|
||||
target_atdna(metaforce atdna_InformationCenter.cpp InformationCenter.hpp)
|
||||
target_atdna(metaforce atdna_GameMode.cpp GameMode.hpp)
|
||||
|
||||
if(COMMAND add_sanitizers)
|
||||
add_sanitizers(urde)
|
||||
add_sanitizers(metaforce)
|
||||
endif()
|
||||
|
||||
if (NOT WINDOWS_STORE)
|
||||
add_dependencies(urde visigen hecl)
|
||||
add_dependencies(metaforce visigen hecl)
|
||||
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
|
||||
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()
|
||||
|
|
|
@ -65,7 +65,7 @@ bool ProjectManager::newProject(hecl::SystemStringView path) {
|
|||
saveProject();
|
||||
|
||||
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.FadeInEditors();
|
||||
|
||||
|
@ -105,7 +105,7 @@ bool ProjectManager::openProject(hecl::SystemStringView path) {
|
|||
saveProject();
|
||||
|
||||
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.DismissSplash();
|
||||
m_vm.FadeInEditors();
|
||||
|
|
|
@ -33,12 +33,12 @@ SplashScreen::SplashScreen(ViewManager& vm, specter::ViewResources& res)
|
|||
, m_newProjBind(*this)
|
||||
, m_openProjBind(*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{}: {}"),
|
||||
vm.translate<locale::version>(), URDE_WC_DESCRIBE,
|
||||
vm.translate<locale::branch>(), URDE_WC_BRANCH,
|
||||
vm.translate<locale::commit>(), URDE_WC_REVISION/*,
|
||||
vm.translate<locale::date>(), URDE_WC_DATE*/);
|
||||
vm.translate<locale::version>(), METAFORCE_WC_DESCRIBE,
|
||||
vm.translate<locale::branch>(), METAFORCE_WC_BRANCH,
|
||||
vm.translate<locale::commit>(), METAFORCE_WC_REVISION/*,
|
||||
vm.translate<locale::date>(), METAFORCE_WC_DATE*/);
|
||||
}
|
||||
m_openProjBind.m_openRecentMenuRoot.m_text = vm.translate<locale::recent_projects>();
|
||||
m_textColorClear[3] = 0.0;
|
||||
|
|
|
@ -303,7 +303,8 @@ void ViewManager::init(boo::IApplication* app) {
|
|||
m_pipelineConv = hecl::NewPipelineConverter(m_mainBooFactory);
|
||||
hecl::conv = m_pipelineConv.get();
|
||||
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_viewResources.init(m_mainBooFactory, &m_fontCache, &m_themeData, pixelFactor);
|
||||
InitializeIcons(m_viewResources);
|
||||
|
|
|
@ -17,7 +17,7 @@ static void AthenaExc(athena::error::Level level, const char* file, const char*,
|
|||
}
|
||||
|
||||
namespace urde {
|
||||
static logvisor::Module Log{"URDE"};
|
||||
static logvisor::Module Log{"Metaforce"};
|
||||
|
||||
static hecl::SystemString CPUFeatureString(const zeus::CPUInfo& cpuInf) {
|
||||
hecl::SystemString features;
|
||||
|
@ -128,11 +128,11 @@ static void SetupBasics(bool logging) {
|
|||
auto result = zeus::validateCPU();
|
||||
if (!result.first) {
|
||||
#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));
|
||||
MessageBoxW(nullptr, msg.c_str(), L"CPU error", MB_OK | MB_ICONERROR);
|
||||
#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));
|
||||
#endif
|
||||
exit(1);
|
||||
|
@ -144,9 +144,9 @@ static void SetupBasics(bool logging) {
|
|||
atSetExceptionHandler(AthenaExc);
|
||||
|
||||
#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()};
|
||||
logvisor::RegisterSentry("urde", URDE_WC_DESCRIBE, cacheDir.c_str());
|
||||
logvisor::RegisterSentry("metaforce", METAFORCE_WC_DESCRIBE, cacheDir.c_str());
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -165,12 +165,12 @@ int main(int argc, const boo::SystemChar** argv)
|
|||
#endif
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
SetupBasics(IsClientLoggingEnabled(argc, argv));
|
||||
hecl::Runtime::FileStoreManager fileMgr{_SYS_STR("urde")};
|
||||
hecl::Runtime::FileStoreManager fileMgr{_SYS_STR("metaforce")};
|
||||
hecl::CVarManager cvarMgr{fileMgr};
|
||||
hecl::CVarCommons cvarCmns{cvarMgr};
|
||||
|
||||
|
@ -203,9 +203,9 @@ int main(int argc, const boo::SystemChar** argv)
|
|||
hecl::SetCpuCountOverride(argc, argv);
|
||||
|
||||
urde::Application appCb(fileMgr, cvarMgr, cvarCmns);
|
||||
int ret = boo::ApplicationRun(boo::IApplication::EPlatformType::Auto, appCb, _SYS_STR("urde"), _SYS_STR("URDE"), argc,
|
||||
argv, appCb.getGraphicsApi(), appCb.getSamples(), appCb.getAnisotropy(),
|
||||
appCb.getDeepColor(), appCb.getTargetFrameTime(), false);
|
||||
int ret = boo::ApplicationRun(boo::IApplication::EPlatformType::Auto, appCb, _SYS_STR("metaforce"),
|
||||
_SYS_STR("Metaforce"), argc, argv, appCb.getGraphicsApi(), appCb.getSamples(),
|
||||
appCb.getAnisotropy(), appCb.getDeepColor(), appCb.getTargetFrameTime(), false);
|
||||
// printf("IM DYING!!\n");
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -17,13 +17,13 @@ BEGIN
|
|||
BLOCK "000004b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "AxioDL"
|
||||
VALUE "FileDescription", "URDE"
|
||||
VALUE "FileVersion", "@URDE_WC_DESCRIBE@"
|
||||
VALUE "FileDescription", "Metaforce"
|
||||
VALUE "FileVersion", "@METAFORCE_WC_DESCRIBE@"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2015-@CURRENT_YEAR@ AxioDL Team"
|
||||
VALUE "InternalName", "urde"
|
||||
VALUE "OriginalFilename", "urde.exe"
|
||||
VALUE "ProductName", "URDE"
|
||||
VALUE "ProductVersion", "@URDE_WC_DESCRIBE@"
|
||||
VALUE "InternalName", "metaforce"
|
||||
VALUE "OriginalFilename", "metaforce.exe"
|
||||
VALUE "ProductName", "Metaforce"
|
||||
VALUE "ProductVersion", "@METAFORCE_WC_DESCRIBE@"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
The MIT License
|
||||
|
||||
Copyright (c) 2015-2018 URDE Contributors
|
||||
Copyright (c) 2015-2021 Metaforce Contributors
|
||||
Original Authors: Jack Andersen and Phillip "Antidote" Stephens
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
|
38
README.md
|
@ -1,9 +1,11 @@
|
|||
## URDE
|
||||
## Metaforce
|
||||
#### Formerly known as URDE
|
||||
|
||||
**Status:** Metroid Prime 1 In-Game (all retail GC & Wii versions)
|
||||
|
||||
**Official Discord Channel:** https://discord.gg/AMBVFuf
|
||||
|
||||
![URDE screenshot](assets/urde-screen1.png)
|
||||
![Metaforce screenshot](assets/urde-screen1.png)
|
||||
|
||||
### 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.
|
||||
|
@ -20,8 +22,8 @@ Everything else is much too experimental to make portable/stable release builds
|
|||
|
||||
* Extract ISO: `hecl extract [path].iso -o mp1`
|
||||
* `mp1` can be substituted with the directory name of your choice
|
||||
* Repackage game for URDE: `cd mp1; hecl package`
|
||||
* Run URDE: `urde mp1/out`
|
||||
* Repackage game for Metaforce: `cd mp1; hecl package`
|
||||
* Run Metaforce: `urde mp1/out`
|
||||
|
||||
### 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`
|
||||
* `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.
|
||||
* Run URDE: `urde mpt/out`
|
||||
* Run Metaforce: `urde mpt/out`
|
||||
|
||||
#### URDE options (non-exhaustive)
|
||||
#### Metaforce options (non-exhaustive)
|
||||
|
||||
* `-l`: Enable console logging
|
||||
* `--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
|
||||
|
||||
```sh
|
||||
git clone --recursive https://github.com/AxioDL/urde.git
|
||||
mkdir urde-build
|
||||
cd urde-build
|
||||
git clone --recursive https://github.com/AxioDL/metaforce.git
|
||||
mkdir metaforce-build
|
||||
cd metaforce-build
|
||||
```
|
||||
|
||||
### Update Directions
|
||||
|
||||
```sh
|
||||
cd urde
|
||||
cd metaforce
|
||||
git pull
|
||||
git submodule update --recursive
|
||||
```
|
||||
|
@ -88,15 +90,15 @@ For Windows, it's recommended to use Visual Studio. See below.
|
|||
#### ninja (Windows/macOS/Linux)
|
||||
|
||||
```sh
|
||||
cd urde-build
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja ../urde
|
||||
cd metaforce-build
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja ../metaforce
|
||||
ninja
|
||||
```
|
||||
|
||||
#### CMake options
|
||||
- Build release optimized (better runtime performance): `-DCMAKE_BUILD_TYPE=Release`
|
||||
- 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)
|
||||
*(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.
|
||||
|
||||
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.
|
||||
|
||||
#### Xcode (macOS)
|
||||
|
||||
```sh
|
||||
cmake -G Xcode ../urde
|
||||
cmake -G Xcode ../metaforce
|
||||
```
|
||||
|
||||
Then open `urde.xcodeproj`
|
||||
Then open `metaforce.xcodeproj`
|
||||
|
||||
#### Optional Debug Models
|
||||
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
|
||||
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.
|
||||
|
|
|
@ -7,9 +7,8 @@ chmod +x linuxdeploy-$(uname -m).AppImage linuxdeploy-plugin-qt-$(uname -m).AppI
|
|||
|
||||
# Build AppImage
|
||||
mkdir -p appdir/usr/{bin,share/{applications,icons/hicolor}}
|
||||
cp build/Binaries/{hecl,hecl-gui,urde,visigen} appdir/usr/bin
|
||||
strip -S appdir/usr/bin/{hecl,hecl-gui,urde,visigen}
|
||||
cp -r Editor/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
|
||||
sed -i 's/Exec=.*/Exec=hecl-gui/' appdir/usr/share/applications/urde.desktop
|
||||
VERSION="$URDE_VERSION" ./linuxdeploy-$(uname -m).AppImage --appdir appdir --plugin qt --output appimage
|
||||
cp build/Binaries/{hecl,metaforce-gui,metaforce,visigen} appdir/usr/bin
|
||||
strip -S appdir/usr/bin/{hecl,metaforce-gui,metaforce,visigen}
|
||||
cp -r metaforce-gui/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} appdir/usr/share/icons/hicolor
|
||||
cp metaforce-gui/platforms/freedesktop/metaforce.desktop appdir/usr/share/applications
|
||||
VERSION="$METAFORCE_VERSION" ./linuxdeploy-$(uname -m).AppImage --appdir appdir --plugin qt --output appimage
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash -ex
|
||||
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
|
||||
done
|
||||
strip -S hecl hecl-gui urde visigen
|
||||
sentry-cli upload-dif --org axiodl --project urde {hecl,hecl-gui,urde,visigen}{,.dbg} --include-sources
|
||||
strip -S hecl metaforce-gui metaforce visigen
|
||||
sentry-cli upload-dif --org axiodl --project metaforce {hecl,metaforce-gui,metaforce,visigen}{,.dbg} --include-sources
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash -ex
|
||||
cd build/Binaries/hecl-gui.app/Contents/MacOS
|
||||
for f in hecl hecl-gui urde visigen; do
|
||||
cd build/Binaries/metaforce-gui.app/Contents/MacOS
|
||||
for f in hecl metaforce-gui metaforce visigen; do
|
||||
dsymutil $f
|
||||
done
|
||||
strip -S hecl hecl-gui urde visigen crashpad_handler
|
||||
sentry-cli upload-dif --org axiodl --project urde {hecl,hecl-gui,urde,visigen}{,.dSYM} --include-sources
|
||||
strip -S hecl metaforce-gui metaforce visigen crashpad_handler
|
||||
sentry-cli upload-dif --org axiodl --project metaforce {hecl,metaforce-gui,metaforce,visigen}{,.dSYM} --include-sources
|
||||
rm -r -- *.dSYM
|
||||
|
|
|
@ -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()
|
|
@ -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
|
|
@ -283,7 +283,7 @@ int main(int argc, const char** argv)
|
|||
#endif
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -313,7 +313,7 @@ int main(int argc, const char** argv)
|
|||
#if SENTRY_ENABLED
|
||||
hecl::Runtime::FileStoreManager fileMgr{_SYS_STR("sentry-native-hecl")};
|
||||
hecl::SystemUTF8Conv cacheDir{fileMgr.getStoreRoot()};
|
||||
logvisor::RegisterSentry("hecl", URDE_WC_DESCRIBE, cacheDir.c_str());
|
||||
logvisor::RegisterSentry("hecl", METAFORCE_WC_DESCRIBE, cacheDir.c_str());
|
||||
#endif
|
||||
|
||||
/* Basic usage check */
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
###############################################################
|
||||
# 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}
|
||||
CONTAINER_NAME=urde-ci
|
||||
CONTAINER_NAME=metaforce-ci
|
||||
|
||||
# Set up container, deleting existing if necessary
|
||||
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
|
||||
set -e
|
||||
|
||||
# URDE build script for Ubuntu 20.04 LTS (Focal)
|
||||
# Metaforce build script for Ubuntu 20.04 LTS (Focal)
|
||||
|
||||
# Install build dependencies
|
||||
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
|
||||
|
||||
# Cleanup
|
||||
rm -rf urde{-build,-appdir,}
|
||||
rm -rf metaforce{-build,-appdir,}
|
||||
|
||||
# Clone repository
|
||||
git clone https://github.com/AxioDL/urde.git --recursive
|
||||
git clone https://github.com/AxioDL/metaforce.git --recursive
|
||||
|
||||
# Build
|
||||
mkdir -p urde{-build,-appdir}
|
||||
pushd urde-build
|
||||
mkdir -p metaforce{-build,-appdir}
|
||||
pushd metaforce-build
|
||||
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 \
|
||||
/urde
|
||||
ninja hecl hecl-gui urde visigen
|
||||
/metaforce
|
||||
ninja hecl metaforce-gui metaforce visigen
|
||||
popd
|
||||
|
||||
mkdir -p /urde-appdir/usr/{bin,share/{applications,icons/hicolor}}
|
||||
cp /urde-build/Binaries/{hecl,hecl-gui,urde,visigen} /urde-appdir/usr/bin
|
||||
strip -s /urde-appdir/usr/bin/{hecl,hecl-gui,urde,visigen}
|
||||
cp -r /urde/Editor/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} /urde-appdir/usr/share/icons/hicolor
|
||||
cp /urde/Editor/platforms/freedesktop/urde.desktop /urde-appdir/usr/share/applications
|
||||
sed -i 's/Exec=.*/Exec=hecl-gui/' /urde-appdir/usr/share/applications/urde.desktop
|
||||
VERSION=$VERSION /linuxdeploy-$(uname -m).AppImage --appdir /urde-appdir --plugin qt --output appimage
|
||||
mkdir -p /metaforce-appdir/usr/{bin,share/{applications,icons/hicolor}}
|
||||
cp /metaforce-build/Binaries/{hecl,metaforce-gui,metaforce,visigen} /metaforce-appdir/usr/bin
|
||||
strip -s /metaforce-appdir/usr/bin/{hecl,metaforce-gui,metaforce,visigen}
|
||||
cp -r /metaforce/Editor/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} /metaforce-appdir/usr/share/icons/hicolor
|
||||
cp /metaforce/Editor/platforms/freedesktop/metaforce.desktop /metaforce-appdir/usr/share/applications
|
||||
sed -i 's/Exec=.*/Exec=metaforce-gui/' /metaforce-appdir/usr/share/applications/metaforce.desktop
|
||||
VERSION=$VERSION /linuxdeploy-$(uname -m).AppImage --appdir /metaforce-appdir --plugin qt --output appimage
|
||||
END
|
||||
|
||||
# Start container
|
||||
|
|
|
@ -26,7 +26,7 @@ set(BUILD_SHARED_LIBS OFF CACHE BOOL "")
|
|||
set(QUAZIP_INSTALL OFF CACHE BOOL "")
|
||||
add_subdirectory(quazip)
|
||||
|
||||
add_executable(hecl-gui WIN32 MACOSX_BUNDLE
|
||||
add_executable(metaforce-gui WIN32 MACOSX_BUNDLE
|
||||
#ArgumentEditor.cpp
|
||||
#ArgumentEditor.hpp
|
||||
#ArgumentEditor.ui
|
||||
|
@ -59,7 +59,7 @@ add_executable(hecl-gui WIN32 MACOSX_BUNDLE
|
|||
${QUAZIP_SRCS}
|
||||
)
|
||||
|
||||
target_compile_definitions(hecl-gui PRIVATE
|
||||
target_compile_definitions(metaforce-gui PRIVATE
|
||||
# Disable implicit conversions from ASCII to QString.
|
||||
-DQT_NO_CAST_FROM_ASCII
|
||||
-DQT_NO_CAST_TO_ASCII
|
||||
|
@ -97,23 +97,23 @@ else ()
|
|||
Qt5::Xml)
|
||||
# Check for static linking
|
||||
if (WIN32)
|
||||
get_target_property(HECL_RUNTIME_LIBRARY hecl-gui MSVC_RUNTIME_LIBRARY)
|
||||
if (NOT "${HECL_RUNTIME_LIBRARY}" MATCHES "DLL$")
|
||||
get_target_property(_MSVC_RUNTIME_LIBRARY metaforce-gui MSVC_RUNTIME_LIBRARY)
|
||||
if (NOT "${_MSVC_RUNTIME_LIBRARY}" MATCHES "DLL$")
|
||||
list(APPEND Qt_LIBS Qt5::QWindowsIntegrationPlugin)
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
target_link_libraries(hecl-gui PRIVATE
|
||||
target_link_libraries(metaforce-gui PRIVATE
|
||||
${Qt_LIBS}
|
||||
hecl-light
|
||||
zeus
|
||||
QuaZip::QuaZip)
|
||||
|
||||
target_include_directories(hecl-gui PRIVATE quazip/quazip)
|
||||
target_compile_definitions(hecl-gui PRIVATE QUAZIP_STATIC=1)
|
||||
target_include_directories(metaforce-gui PRIVATE quazip/quazip)
|
||||
target_compile_definitions(metaforce-gui PRIVATE QUAZIP_STATIC=1)
|
||||
|
||||
if (APPLE)
|
||||
target_sources(hecl-gui PRIVATE
|
||||
target_sources(metaforce-gui PRIVATE
|
||||
MacOSSystemVersion.hpp
|
||||
MacOSSystemVersion.mm
|
||||
)
|
||||
|
@ -121,40 +121,40 @@ if (APPLE)
|
|||
PROPERTIES COMPILE_FLAGS -fobjc-arc
|
||||
)
|
||||
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")
|
||||
target_link_libraries(hecl-gui PRIVATE
|
||||
target_link_libraries(metaforce-gui PRIVATE
|
||||
dl
|
||||
pthread
|
||||
)
|
||||
endif ()
|
||||
|
||||
if (WIN32)
|
||||
target_sources(hecl-gui PRIVATE
|
||||
platforms/win/hecl-gui.manifest
|
||||
platforms/win/hecl-gui.rc
|
||||
target_sources(metaforce-gui PRIVATE
|
||||
platforms/win/metaforce-gui.manifest
|
||||
platforms/win/metaforce-gui.rc
|
||||
)
|
||||
target_link_libraries(hecl-gui PRIVATE
|
||||
target_link_libraries(metaforce-gui PRIVATE
|
||||
Version)
|
||||
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"
|
||||
)
|
||||
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
|
||||
MACOSX_PACKAGE_LOCATION Resources
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET hecl-gui POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:urde> $<TARGET_FILE_DIR:hecl-gui>
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:hecl> $<TARGET_FILE_DIR:hecl-gui>
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:visigen> $<TARGET_FILE_DIR:hecl-gui>
|
||||
TARGET metaforce-gui POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:urde> $<TARGET_FILE_DIR:metaforce-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:metaforce-gui>
|
||||
DEPENDS urde hecl visigen
|
||||
)
|
||||
if (NOT "${SENTRY_DSN}" STREQUAL "")
|
||||
add_custom_command(
|
||||
TARGET hecl-gui POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:crashpad_handler> $<TARGET_FILE_DIR:hecl-gui>
|
||||
TARGET metaforce-gui POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:crashpad_handler> $<TARGET_FILE_DIR:metaforce-gui>
|
||||
DEPENDS crashpad_handler
|
||||
)
|
||||
endif()
|
||||
|
@ -162,12 +162,12 @@ endif ()
|
|||
|
||||
add_subdirectory(platforms/freedesktop)
|
||||
declare_qticon_target()
|
||||
target_sources(hecl-gui PRIVATE mainicon_qt.cpp)
|
||||
target_sources(metaforce-gui PRIVATE mainicon_qt.cpp)
|
||||
|
||||
if (COMMAND add_sanitizers)
|
||||
add_sanitizers(hecl-gui)
|
||||
add_sanitizers(metaforce-gui)
|
||||
endif ()
|
||||
|
||||
if (NOT MSVC)
|
||||
target_compile_options(hecl-gui PRIVATE -Wno-misleading-indentation)
|
||||
target_compile_options(metaforce-gui PRIVATE -Wno-misleading-indentation)
|
||||
endif ()
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 281 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
|
@ -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()
|
|
@ -1,9 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=HECL
|
||||
Name=Metaforce
|
||||
GenericName=Game Data Prep Tool
|
||||
Comment=Prepare Game Data for URDE
|
||||
Exec=hecl-gui
|
||||
Icon=hecl
|
||||
Comment=Prepare Game Data for Metaforce
|
||||
Exec=metaforce-gui
|
||||
Icon=metaforce-gui
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Graphics;3DGraphics;
|
|
@ -3,11 +3,11 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>hecl-gui</string>
|
||||
<string>metaforce-gui</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>@URDE_WC_DESCRIBE@</string>
|
||||
<string>@METAFORCE_WC_DESCRIBE@</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>@URDE_WC_DESCRIBE@</string>
|
||||
<string>@METAFORCE_WC_DESCRIBE@</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>2015-@CURRENT_YEAR@ AxioDL Team</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
|
@ -17,9 +17,9 @@
|
|||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>URDE</string>
|
||||
<string>Metaforce</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>@URDE_WC_DESCRIBE@</string>
|
||||
<string>@METAFORCE_WC_DESCRIBE@</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
Before Width: | Height: | Size: 352 KiB After Width: | Height: | Size: 352 KiB |
|
@ -1,6 +1,6 @@
|
|||
<?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">
|
||||
<description>HECL-GUI</description>
|
||||
<description>Metaforce</description>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Windows 10 -->
|
|
@ -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
|