Start renaming project to Metaforce
|
@ -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
|
||||||
|
|
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)
|
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()
|
||||||
|
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"
|
||||||
|
|
2
LICENSE
|
@ -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
|
||||||
|
|
38
README.md
|
@ -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.
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
#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 */
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ()
|
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]
|
[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;
|
|
@ -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>
|
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"?>
|
<?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 -->
|
|
@ -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
|