Skip to content

Commit 61ddab1

Browse files
committed
Fix build on arm64 linux
1 parent faa8ec4 commit 61ddab1

File tree

3 files changed

+27
-12
lines changed

3 files changed

+27
-12
lines changed

CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ elseif (APPLE)
2929
set(PATHFINDER_BACKEND_OPENGL OFF)
3030
set(PATHFINDER_BACKEND_VULKAN ON)
3131
elseif (LINUX)
32-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
32+
if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm|aarch64")
33+
message(STATUS "Building on ARM architecture")
34+
else()
35+
message(STATUS "Not on ARM architecture")
36+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
37+
endif()
3338
endif ()
3439

3540
add_subdirectory(pathfinder)

pathfinder/common/f32x4.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#undef max
1313

1414
#ifdef PATHFINDER_ENABLE_SIMD
15-
#ifdef __ANDROID__
15+
#if defined(__ANDROID__) || (defined(__linux__) && defined(__ARM_ARCH))
1616
// Converts Intel SSE intrinsics to Arm/Aarch64 NEON intrinsics.
1717
#include <sse2neon.h>
1818
#else

pathfinder/gpu/gl/window_builder.cpp

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,30 @@ bool is_extension_supported(const char *name) {
3131
WindowBuilderGl::WindowBuilderGl(const Vec2I &logical_size) {
3232
glfwInit();
3333

34-
// Major GL version.
35-
#ifdef PATHFINDER_ENABLE_D3D11
36-
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
34+
#if (defined(__linux__) && defined(__ARM_ARCH))
35+
// Set the desired OpenGL ES version.
36+
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
37+
#ifdef PATHFINDER_ENABLE_D3D11
38+
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
39+
#else
40+
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
41+
#endif
3742
#else
38-
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
39-
#endif
43+
// Major GL version.
44+
#ifdef PATHFINDER_ENABLE_D3D11
45+
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
46+
#else
47+
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
48+
#endif
4049

41-
// Minor GL version.
42-
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
50+
// Minor GL version.
51+
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
4352

44-
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
53+
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
4554

46-
#ifdef __APPLE__
47-
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
55+
#ifdef __APPLE__
56+
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
57+
#endif
4858
#endif
4959

5060
float dpi_scaling_factor;

0 commit comments

Comments
 (0)