Skip to content

Commit

Permalink
Remove unnecessary duplicated native libs
Browse files Browse the repository at this point in the history
  • Loading branch information
eXpl0it3r committed May 18, 2024
1 parent 71c3fea commit 46ce194
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 20 deletions.
2 changes: 2 additions & 0 deletions tools/nuget/CSFML/build/netstandard2.0/CSFML.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,7 @@
<Project ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CSFMLIgnoreAnyCPU>true</CSFMLIgnoreAnyCPU>
<!-- Silence warning about the fedora-x64 libraries -->
<NoWarn>NETSDK1206</NoWarn>
</PropertyGroup>
</Project>
18 changes: 11 additions & 7 deletions tools/nuget/build.linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ cmake --build . --config Release
# STEP 5: Copy result to the NuGet folders #
# ======================================== #

SFMLMajorMinor="2.6"
CSFMLMajorMinor="2.6"

# Copies one SFML and CSFML module into the NuGet package
# The module name must be passed to this function as an argument, in lowercase
# This function then copies $SFMLLibDir/libsfml-(module).so and
Expand All @@ -137,14 +140,15 @@ copymodule()

mkdir -p "$OutDir"

# Note the wildcard at the end of the first argument
# We are copying every versioned file here, not just the .so
# (libsfml-audio.so, libsfml-audio.so.2, libsfml-audio.so.2.6, etc)
# This is needed because of the way linux searches for libraries based
# one their SONAME
cp "$SFMLLibDir/libsfml-$MODULE.so"* "$OutDir"

# SFML.Net only searches for the name with common pre- and suffixes
# As such we need to ship e.g. libcsfml-graphics.so
# But the CSFML libs will look for the major.minor version
# As such we also need to ship e.g. libcsfml-graphics.so.2.6
# Unfortunately NuGet package don't support symlinks: https://github.com/NuGet/Home/issues/10734
# For SFML, we can just ship one version that CSFML will be looking for
cp "$SFMLLibDir/libsfml-$MODULE.so.$SFMLMajorMinor" "$OutDir"
cp "$CSFMLLibDir/libcsfml-$MODULE.so" "$OutDir"
cp "$CSFMLLibDir/libcsfml-$MODULE.so.$CSFMLMajorMinor" "$OutDir"
}

copymodule audio
Expand Down
22 changes: 9 additions & 13 deletions tools/nuget/build.macos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -193,19 +193,15 @@ copymodule()

mkdir -p "$OutDir"

# Note the wildcard at the end of the first argument
# We are copying every versioned file here, not just the .dylib
# (libsfml-audio.dylib, libsfml-audio.2.dylib, libsfml-audio.2.6.dylib, etc)
# This is needed because of the way macOS searches for libraries based
# one their SONAME
cp "$SFMLLibDir/libsfml-$MODULE."* "$OutDir"

cp "$CSFMLLibDir/libcsfml-$MODULE."* "$OutDir"

# Fix naming for expected filename
mv "$OutDir/libcsfml-$MODULE.dylib" "$OutDir/libcsfml-$MODULE"
mv "$OutDir/libcsfml-$MODULE.$CSFMLMajorMinor.dylib" "$OutDir/libcsfml-$MODULE.$CSFMLMajorMinor"
mv "$OutDir/libcsfml-$MODULE.$CSFMLMajorMinorPatch.dylib" "$OutDir/libcsfml-$MODULE.$CSFMLMajorMinorPatch"
# SFML.Net only searches for the name with common pre- and suffixes
# As such we need to ship e.g. libcsfml-graphics.dylib
# But the CSFML libs will look for the major.minor version
# As such we also need to ship e.g. libcsfml-graphics.2.6.dylib
# Unfortunately NuGet package don't support symlinks: https://github.com/NuGet/Home/issues/10734
# For SFML, we can just ship one version that CSFML will be looking for
cp "$SFMLLibDir/libsfml-$MODULE.$SFMLMajorMinor.dylib" "$OutDir"
cp "$CSFMLLibDir/libcsfml-$MODULE.dylib" "$OutDir"
cp "$CSFMLLibDir/libcsfml-$MODULE.$CSFMLMajorMinor.dylib" "$OutDir"
}

copymodule audio
Expand Down

0 comments on commit 46ce194

Please sign in to comment.