Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions build_dotnet_win_x64_arm64.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@echo off

if %PROCESSOR_ARCHITECTURE%==AMD64 (
echo "build on x64"
cmake -S . -B build_x64 -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
cmake --build build_x64 --config Release --target ALL_BUILD -j -v
cmake -A ARM64 -S . -B build_arm64 -DBUILD_DEPS=ON -DBUILD_DOTNET=ON -DOR_TOOLS_PROTOC_EXECUTABLE=..\build_x64\Release\bin\protoc.exe
cmake --build build_arm64 --config Release --target ALL_BUILD -j -v
)

if %PROCESSOR_ARCHITECTURE%==ARM64 (
echo "build on arm64"
cmake -S . -B build_arm64 -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
cmake --build build_arm64 --config Release --target ALL_BUILD -j -v
cmake -A x64 -S . -B build_x64 -DBUILD_DEPS=ON -DBUILD_DOTNET=ON -DOR_TOOLS_PROTOC_EXECUTABLE=..\build_arm64\Release\bin\protoc.exe
cmake --build build_x64 --config Release --target ALL_BUILD -j -v
)

8 changes: 7 additions & 1 deletion cmake/dotnet.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,18 @@ set(DOTNET_PACKAGES_DIR "${PROJECT_BINARY_DIR}/dotnet/packages")

# Runtime IDentifier
# see: https://docs.microsoft.com/en-us/dotnet/core/rid-catalog
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64)")
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|ARM64)")
set(DOTNET_PLATFORM arm64)
else()
set(DOTNET_PLATFORM x64)
endif()

if (CMAKE_GENERATOR_PLATFORM MATCHES "^(aarch64|arm64|ARM64)")
set(DOTNET_PLATFORM arm64)
elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^(X64|x64)")
set(DOTNET_PLATFORM x64)
endif()

if(APPLE)
set(DOTNET_RID osx-${DOTNET_PLATFORM})
elseif(UNIX)
Expand Down
7 changes: 5 additions & 2 deletions ortools/dotnet/Google.OrTools-full.csproj.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<OutputType>Library</OutputType>
<LangVersion>@DOTNET_LANG@</LangVersion>
@DOTNET_TFM@
<RuntimeIdentifiers>linux-x64;osx-x64;win-x64;linux-arm64;osx-arm64</RuntimeIdentifiers>
<RuntimeIdentifiers>linux-x64;osx-x64;win-x64;win-arm64;linux-arm64;osx-arm64</RuntimeIdentifiers>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<AssemblyName>@DOTNET_PROJECT@</AssemblyName>
<Version>@PROJECT_VERSION@@DOTNET_RELEASE@</Version>
Expand Down Expand Up @@ -116,6 +116,7 @@
<RuntimeLinuxX64 Include="@DOTNET_PACKAGES_DIR@/@DOTNET_PROJECT@.runtime.linux-x64.*.nupkg"/>
<RuntimeOsxX64 Include="@DOTNET_PACKAGES_DIR@/@DOTNET_PROJECT@.runtime.osx-x64.*.nupkg"/>
<RuntimeWinX64 Include="@DOTNET_PACKAGES_DIR@/@DOTNET_PROJECT@.runtime.win-x64.*.nupkg"/>
<RuntimeWinArm64 Include="@DOTNET_PACKAGES_DIR@/@DOTNET_PROJECT@.runtime.win-arm64.*.nupkg"/>
<RuntimeLinuxArm64 Include="@DOTNET_PACKAGES_DIR@/@DOTNET_PROJECT@.runtime.linux-arm64.*.nupkg"/>
<RuntimeOsxArm64 Include="@DOTNET_PACKAGES_DIR@/@DOTNET_PROJECT@.runtime.osx-arm64.*.nupkg"/>
</ItemGroup>
Expand All @@ -126,11 +127,13 @@
<Message Importance="high" Text="Package @DOTNET_PROJECT@.runtime.osx-x64: not found" Condition="!Exists('@(RuntimeOsxX64)')"/>
<Message Importance="high" Text="Package @DOTNET_PROJECT@.runtime.win-x64: found" Condition="Exists('@(RuntimeWinX64)')"/>
<Message Importance="high" Text="Package @DOTNET_PROJECT@.runtime.win-x64: not found" Condition="!Exists('@(RuntimeWinX64)')"/>
<Message Importance="high" Text="Package @DOTNET_PROJECT@.runtime.win-arm64: found" Condition="Exists('@(RuntimeWinArm64)')"/>
<Message Importance="high" Text="Package @DOTNET_PROJECT@.runtime.win-arm64: not found" Condition="!Exists('@(RuntimeWinArm64)')"/>
<Message Importance="high" Text="Package @DOTNET_PROJECT@.runtime.linux-arm64: found" Condition="Exists('@(RuntimeLinuxArm64)')"/>
<Message Importance="high" Text="Package @DOTNET_PROJECT@.runtime.linux-arm64: not found" Condition="!Exists('@(RuntimeLinuxArm64)')"/>
<Message Importance="high" Text="Package @DOTNET_PROJECT@.runtime.osx-arm64: found" Condition="Exists('@(RuntimeOsxArm64)')"/>
<Message Importance="high" Text="Package @DOTNET_PROJECT@.runtime.osx-arm64: not found" Condition="!Exists('@(RuntimeOsxArm64)')"/>
<Error Text="You must have locally all runtime packages." Condition="!Exists('@(RuntimeLinuxX64)') OR !Exists('@(RuntimeOsxX64)') OR !Exists('@(RuntimeWinX64)') OR !Exists('@(RuntimeLinuxArm64)') OR !Exists('@(RuntimeOsxArm64)')"/>
<Error Text="You must have locally all runtime packages." Condition="!Exists('@(RuntimeLinuxX64)') OR !Exists('@(RuntimeOsxX64)') OR !Exists('@(RuntimeWinX64)') OR !Exists('@(RuntimeWinArm64)') OR !Exists('@(RuntimeLinuxArm64)') OR !Exists('@(RuntimeOsxArm64)')"/>
</Target>

<!-- Copy all .proto file(s) -->
Expand Down
1 change: 1 addition & 0 deletions ortools/dotnet/Google.OrTools.sln
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ MinimumVisualStudioVersion = 15.0.26124.0
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Google.OrTools.runtime.linux-x64", "Google.OrTools.runtime.linux-x64\Google.OrTools.runtime.linux-x64.csproj", "{FC646C34-8541-427D-B9F6-1247798F4574}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Google.OrTools.runtime.osx-x64", "Google.OrTools.runtime.osx-x64\Google.OrTools.runtime.osx-x64.csproj", "{FC646C34-8541-427D-B9F6-1247798F4574}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Google.OrTools.runtime.win-x64", "Google.OrTools.runtime.win-x64\Google.OrTools.runtime.win-x64.csproj", "{FC646C34-8541-427D-B9F6-1247798F4574}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Google.OrTools.runtime.win-arm64", "Google.OrTools.runtime.win-arm64\Google.OrTools.runtime.win-arm64.csproj", "{FC646C34-8541-427D-B9F6-1247798F4574}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Google.OrTools", "Google.OrTools\Google.OrTools.csproj", "{FC646C34-8541-427D-B9F6-1247798F4574}"
EndProject
Global
Expand Down
14 changes: 14 additions & 0 deletions patches/scip-v10.0.0.patch
Original file line number Diff line number Diff line change
Expand Up @@ -107,3 +107,17 @@ index c6ce7283..6b6b1fc8 100644
install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/scip-config.cmake"
${PROJECT_BINARY_DIR}/scip-config-version.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scip)
diff --git a/src/scip/intervalarith.c b/src/scip/intervalarith.c
index 6d76d12e..7a0b0204 100644
--- a/src/scip/intervalarith.c
+++ b/src/scip/intervalarith.c
@@ -301,7 +301,7 @@ double negate(
/* cl or icl compiler on 32bit windows or icl compiler on 64bit windows
* cl on 64bit windows does not seem to support inline assembler
*/
-#elif defined(_MSC_VER) && (defined(__INTEL_COMPILER) || !defined(_M_X64))
+#elif defined(_MSC_VER) && (defined(__INTEL_COMPILER) || (!defined(_M_X64) && !defined(_M_ARM64)))

/** gets the negation of a double
* Do this in a way that the compiler does not "optimize" it away, which usually does not considers rounding modes.

Loading