Skip to content

Commit d08a96e

Browse files
committed
Merge remote-tracking branch 'origin/master' into faulty_files_detector
2 parents 24a5707 + 4285afc commit d08a96e

File tree

94 files changed

+13115
-75
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+13115
-75
lines changed

.github/workflows/dev-release.yml

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,44 @@ on: [push, workflow_dispatch]
33
env:
44
BUILD_TYPE: Release
55
jobs:
6+
csharp-release:
7+
runs-on: windows-latest
8+
strategy:
9+
matrix:
10+
target: [csharp-api]
11+
steps:
12+
- name: Set up Python
13+
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
14+
with:
15+
python-version: "3.12"
16+
17+
- name: Checkout
18+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
19+
20+
- name: Configure CMake
21+
run: cmake -S ${{github.workspace}}/csharp-api -B ${{github.workspace}}/csharp-api/build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
22+
23+
- name: Build
24+
run: cmake --build ${{github.workspace}}/csharp-api/build --config ${{env.BUILD_TYPE}} --target ALL_BUILD
25+
26+
- name: Prepare release
27+
working-directory: ${{github.workspace}}/csharp-api
28+
run: |
29+
pip install -r requirements.txt
30+
python make_symlinks.py --gamedir="${{github.workspace}}/csharp-api" --bindir="${{github.workspace}}/csharp-api/build/bin" --just_copy=True
31+
32+
- name: Compress release
33+
working-directory: ${{github.workspace}}/csharp-api
34+
run: |
35+
7z a ${{github.workspace}}/${{matrix.target}}.zip reframework
36+
37+
- name: Upload artifacts
38+
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
39+
with:
40+
name: ${{matrix.target}}
41+
path: ${{github.workspace}}/${{matrix.target}}.zip
42+
if-no-files-found: error
43+
644
dev-release:
745
runs-on: windows-latest
846
strategy:
@@ -43,7 +81,7 @@ jobs:
4381

4482
nightly-push:
4583
runs-on: windows-latest
46-
needs: dev-release
84+
needs: [dev-release, csharp-release]
4785
if: github.ref == 'refs/heads/master'
4886
steps:
4987
- name: Checkout

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,7 @@ cmake-build*
1313
.idea/
1414
build_vs2019_devmode_DMC5.bat
1515
src/CommitHash.autogenerated
16+
csharp-api/test/Test/bin
17+
csharp-api/test/Test/obj
18+
csharp-api/build/
19+

CMakeLists.txt

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,14 @@ option(REF_BUILD_PRAGMATA_SDK "" OFF)
4444
option(REF_BUILD_FRAMEWORK "" ON)
4545
option(REF_BUILD_DEPENDENCIES "" ON)
4646

47-
project(reframework)
47+
project(reframework
48+
LANGUAGES
49+
CXX
50+
C
51+
CSharp
52+
)
53+
54+
include(CSharpUtilities)
4855

4956
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
5057
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
@@ -74,6 +81,18 @@ endif()
7481

7582
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
7683

84+
set(NUGET_PACKAGES_DIR "$ENV{NUGET_PACKAGES}")
85+
86+
# If NUGET_PACKAGES_DIR is not set, fall back to the default location
87+
if(NOT NUGET_PACKAGES_DIR)
88+
if(WIN32)
89+
set(DEFAULT_NUGET_PATH "$ENV{USERPROFILE}/.nuget/packages")
90+
else()
91+
set(DEFAULT_NUGET_PATH "$ENV{HOME}/.nuget/packages")
92+
endif()
93+
set(NUGET_PACKAGES_DIR ${DEFAULT_NUGET_PATH})
94+
endif()
95+
7796
include(FetchContent)
7897

7998
# Fix warnings about DOWNLOAD_EXTRACT_TIMESTAMP
@@ -2127,6 +2146,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
21272146
"src/mods/LooseFileLoader.hpp"
21282147
"src/mods/ManualFlashlight.cpp"
21292148
"src/mods/ManualFlashlight.hpp"
2149+
"src/mods/MethodDatabase.cpp"
2150+
"src/mods/MethodDatabase.hpp"
21302151
"src/mods/PluginLoader.cpp"
21312152
"src/mods/PluginLoader.hpp"
21322153
"src/mods/REFrameworkConfig.cpp"
@@ -2328,6 +2349,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
23282349
"src/mods/LooseFileLoader.hpp"
23292350
"src/mods/ManualFlashlight.cpp"
23302351
"src/mods/ManualFlashlight.hpp"
2352+
"src/mods/MethodDatabase.cpp"
2353+
"src/mods/MethodDatabase.hpp"
23312354
"src/mods/PluginLoader.cpp"
23322355
"src/mods/PluginLoader.hpp"
23332356
"src/mods/REFrameworkConfig.cpp"
@@ -4180,6 +4203,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
41804203
"src/mods/LooseFileLoader.hpp"
41814204
"src/mods/ManualFlashlight.cpp"
41824205
"src/mods/ManualFlashlight.hpp"
4206+
"src/mods/MethodDatabase.cpp"
4207+
"src/mods/MethodDatabase.hpp"
41834208
"src/mods/PluginLoader.cpp"
41844209
"src/mods/PluginLoader.hpp"
41854210
"src/mods/REFrameworkConfig.cpp"
@@ -4381,6 +4406,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
43814406
"src/mods/LooseFileLoader.hpp"
43824407
"src/mods/ManualFlashlight.cpp"
43834408
"src/mods/ManualFlashlight.hpp"
4409+
"src/mods/MethodDatabase.cpp"
4410+
"src/mods/MethodDatabase.hpp"
43844411
"src/mods/PluginLoader.cpp"
43854412
"src/mods/PluginLoader.hpp"
43864413
"src/mods/REFrameworkConfig.cpp"
@@ -4582,6 +4609,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
45824609
"src/mods/LooseFileLoader.hpp"
45834610
"src/mods/ManualFlashlight.cpp"
45844611
"src/mods/ManualFlashlight.hpp"
4612+
"src/mods/MethodDatabase.cpp"
4613+
"src/mods/MethodDatabase.hpp"
45854614
"src/mods/PluginLoader.cpp"
45864615
"src/mods/PluginLoader.hpp"
45874616
"src/mods/REFrameworkConfig.cpp"
@@ -7261,6 +7290,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
72617290
"src/mods/LooseFileLoader.hpp"
72627291
"src/mods/ManualFlashlight.cpp"
72637292
"src/mods/ManualFlashlight.hpp"
7293+
"src/mods/MethodDatabase.cpp"
7294+
"src/mods/MethodDatabase.hpp"
72647295
"src/mods/PluginLoader.cpp"
72657296
"src/mods/PluginLoader.hpp"
72667297
"src/mods/REFrameworkConfig.cpp"
@@ -7462,6 +7493,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
74627493
"src/mods/LooseFileLoader.hpp"
74637494
"src/mods/ManualFlashlight.cpp"
74647495
"src/mods/ManualFlashlight.hpp"
7496+
"src/mods/MethodDatabase.cpp"
7497+
"src/mods/MethodDatabase.hpp"
74657498
"src/mods/PluginLoader.cpp"
74667499
"src/mods/PluginLoader.hpp"
74677500
"src/mods/REFrameworkConfig.cpp"
@@ -8490,6 +8523,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
84908523
"src/mods/LooseFileLoader.hpp"
84918524
"src/mods/ManualFlashlight.cpp"
84928525
"src/mods/ManualFlashlight.hpp"
8526+
"src/mods/MethodDatabase.cpp"
8527+
"src/mods/MethodDatabase.hpp"
84938528
"src/mods/PluginLoader.cpp"
84948529
"src/mods/PluginLoader.hpp"
84958530
"src/mods/REFrameworkConfig.cpp"
@@ -9516,6 +9551,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
95169551
"src/mods/LooseFileLoader.hpp"
95179552
"src/mods/ManualFlashlight.cpp"
95189553
"src/mods/ManualFlashlight.hpp"
9554+
"src/mods/MethodDatabase.cpp"
9555+
"src/mods/MethodDatabase.hpp"
95199556
"src/mods/PluginLoader.cpp"
95209557
"src/mods/PluginLoader.hpp"
95219558
"src/mods/REFrameworkConfig.cpp"
@@ -10544,6 +10581,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
1054410581
"src/mods/LooseFileLoader.hpp"
1054510582
"src/mods/ManualFlashlight.cpp"
1054610583
"src/mods/ManualFlashlight.hpp"
10584+
"src/mods/MethodDatabase.cpp"
10585+
"src/mods/MethodDatabase.hpp"
1054710586
"src/mods/PluginLoader.cpp"
1054810587
"src/mods/PluginLoader.hpp"
1054910588
"src/mods/REFrameworkConfig.cpp"
@@ -11572,6 +11611,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
1157211611
"src/mods/LooseFileLoader.hpp"
1157311612
"src/mods/ManualFlashlight.cpp"
1157411613
"src/mods/ManualFlashlight.hpp"
11614+
"src/mods/MethodDatabase.cpp"
11615+
"src/mods/MethodDatabase.hpp"
1157511616
"src/mods/PluginLoader.cpp"
1157611617
"src/mods/PluginLoader.hpp"
1157711618
"src/mods/REFrameworkConfig.cpp"
@@ -12600,6 +12641,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
1260012641
"src/mods/LooseFileLoader.hpp"
1260112642
"src/mods/ManualFlashlight.cpp"
1260212643
"src/mods/ManualFlashlight.hpp"
12644+
"src/mods/MethodDatabase.cpp"
12645+
"src/mods/MethodDatabase.hpp"
1260312646
"src/mods/PluginLoader.cpp"
1260412647
"src/mods/PluginLoader.hpp"
1260512648
"src/mods/REFrameworkConfig.cpp"
@@ -13628,6 +13671,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
1362813671
"src/mods/LooseFileLoader.hpp"
1362913672
"src/mods/ManualFlashlight.cpp"
1363013673
"src/mods/ManualFlashlight.hpp"
13674+
"src/mods/MethodDatabase.cpp"
13675+
"src/mods/MethodDatabase.hpp"
1363113676
"src/mods/PluginLoader.cpp"
1363213677
"src/mods/PluginLoader.hpp"
1363313678
"src/mods/REFrameworkConfig.cpp"
@@ -14656,6 +14701,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
1465614701
"src/mods/LooseFileLoader.hpp"
1465714702
"src/mods/ManualFlashlight.cpp"
1465814703
"src/mods/ManualFlashlight.hpp"
14704+
"src/mods/MethodDatabase.cpp"
14705+
"src/mods/MethodDatabase.hpp"
1465914706
"src/mods/PluginLoader.cpp"
1466014707
"src/mods/PluginLoader.hpp"
1466114708
"src/mods/REFrameworkConfig.cpp"
@@ -15684,6 +15731,8 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework
1568415731
"src/mods/LooseFileLoader.hpp"
1568515732
"src/mods/ManualFlashlight.cpp"
1568615733
"src/mods/ManualFlashlight.hpp"
15734+
"src/mods/MethodDatabase.cpp"
15735+
"src/mods/MethodDatabase.hpp"
1568715736
"src/mods/PluginLoader.cpp"
1568815737
"src/mods/PluginLoader.hpp"
1568915738
"src/mods/REFrameworkConfig.cpp"

cmake.toml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# > cmake --build build --config Release
55
[project]
66
name = "reframework"
7+
languages = ["CXX", "C", "CSharp"]
78
cmake-after = """
89
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
910
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
@@ -32,6 +33,18 @@ if ("${CMAKE_BUILD_TYPE}" MATCHES "Release")
3233
endif()
3334
3435
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
36+
37+
set(NUGET_PACKAGES_DIR "$ENV{NUGET_PACKAGES}")
38+
39+
# If NUGET_PACKAGES_DIR is not set, fall back to the default location
40+
if(NOT NUGET_PACKAGES_DIR)
41+
if(WIN32)
42+
set(DEFAULT_NUGET_PATH "$ENV{USERPROFILE}/.nuget/packages")
43+
else()
44+
set(DEFAULT_NUGET_PATH "$ENV{HOME}/.nuget/packages")
45+
endif()
46+
set(NUGET_PACKAGES_DIR ${DEFAULT_NUGET_PATH})
47+
endif()
3548
"""
3649

3750
[options]
@@ -277,6 +290,7 @@ LIBRARY_OUTPUT_DIRECTORY_RELEASE = "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}"
277290
LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO = "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}"
278291
ARCHIVE_OUTPUT_DIRECTORY_RELEASE = "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}"
279292
ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO = "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}"
293+
# VS_GLOBAL_ResolveNuGetPackages = "false"
280294

281295
[target.RE2SDK]
282296
type = "sdk"

0 commit comments

Comments
 (0)