Skip to content

Commit

Permalink
Support ARM64
Browse files Browse the repository at this point in the history
  • Loading branch information
rcaelers committed Sep 19, 2024
1 parent 7b9ea4f commit 74438b9
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 10 deletions.
46 changes: 45 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
pull_request:

jobs:
build-msys2:
build-msys2-clang64:
runs-on: windows-latest
strategy:
matrix:
Expand Down Expand Up @@ -52,3 +52,47 @@ jobs:
ninja -C _build -v install
cd _build
ctest -V
build-msys2-clangarm64:
runs-on: windows-latest
strategy:
matrix:
configuration: [Debug, Release]

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: msys2/setup-msys2@v2
with:
update: true
msystem: clangarm64
install: >-
git
mingw-w64-clang-aarch64-boost
mingw-w64-clang-aarch64-clang
mingw-w64-clang-aarch64-cmake
mingw-w64-clang-aarch64-compiler-rt
mingw-w64-clang-aarch64-glib2
mingw-w64-clang-aarch64-gtkmm3
mingw-w64-clang-aarch64-lld
mingw-w64-clang-aarch64-ninja
mingw-w64-clang-aarch64-openssl
mingw-w64-clang-aarch64-python
mingw-w64-clang-aarch64-python-pip
mingw-w64-clang-aarch64-spdlog
tar
xz
- uses: actions/setup-python@v3
with:
python-version: 3.11

- shell: msys2 {0}
run: |
mkdir _build _deploy
export MINGW_ROOT=/c/msys64
export MSYSTEM=CLANGARM64
cmake -GNinja -B_build -H. -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/msys2.cmake -DCMAKE_INSTALL_PREFIX=_deploy -DUNFOLD_WITH_TESTS=ON -DCMAKE_BUILD_TYPE=${{ matrix.configuration }}
ninja -C _build -v install
6 changes: 2 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,11 @@ find_package(OpenSSL REQUIRED)
#----------------------------------------------------------------------------------------------------
# Boost

set(BOOST_COMPONENTS coroutine filesystem url)
set(BOOST_COMPONENTS filesystem url)
set(Boost_DEBUG OFF)

if (WIN32)
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(Boost_ARCHITECTURE "-x64")
else()
if (NOT(CMAKE_SIZEOF_VOID_P EQUAL 8))
message(ERROR "Only 64 bit build is supported")
endif()
endif()
Expand Down
4 changes: 3 additions & 1 deletion cmake/toolchains/msys2.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ else()
set(SYS_ROOT "$ENV{MINGW_ROOT}")
endif()

set(CMAKE_ASM_MASM_COMPILER "uasm")
if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|AMD64")
set(CMAKE_ASM_MASM_COMPILER "uasm")
endif()
set(CMAKE_C_COMPILER "clang")
set(CMAKE_CXX_COMPILER "clang++")
set(CMAKE_RC_COMPILER "llvm-rc")
Expand Down
4 changes: 2 additions & 2 deletions examples/gtk/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ if(WIN32)
install(FILES ${webview2_SOURCE_DIR}/runtimes/win-x64/native/WebView2Loader.dll DESTINATION bin)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86|X86")
target_link_directories(webview2 INTERFACE ${webview2_SOURCE_DIR}/build/native/x86)
install(FILES ${webview2_SOURCE_DIR}/runtimes/x86/native/WebView2Loader.dll DESTINATION bin)
install(FILES ${webview2_SOURCE_DIR}/runtimes/win-x86/native/WebView2Loader.dll DESTINATION bin)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|ARM64")
target_link_directories(webview2 INTERFACE ${webview2_SOURCE_DIR}/build/native/arm64)
install(FILES ${webview2_SOURCE_DIR}/runtimes/arm64/native/WebView2Loader.dll DESTINATION bin)
install(FILES ${webview2_SOURCE_DIR}/runtimes/win-arm64/native/WebView2Loader.dll DESTINATION bin)
else()
message(FATAL_ERROR "Unsupported processor: ${CMAKE_SYSTEM_PROCESSOR}")
endif()
Expand Down
2 changes: 1 addition & 1 deletion libs/http/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ if(WIN32)
target_link_libraries(unfold-http PUBLIC ws2_32 mswsock crypt32)
endif()

target_link_libraries(unfold-http PUBLIC Boost::coroutine Boost::url PRIVATE unfold-utils spdlog::spdlog OpenSSL::SSL OpenSSL::Crypto winhttp)
target_link_libraries(unfold-http PUBLIC Boost::url PRIVATE unfold-utils spdlog::spdlog OpenSSL::SSL OpenSSL::Crypto winhttp)
target_compile_definitions(unfold-http PRIVATE BOOST_URL_NO_LIB)

target_include_directories(
Expand Down
2 changes: 1 addition & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ if(WIN32)
endif()

target_link_libraries(unfold PRIVATE unfold-utils unfold-crypto unfold-http unfold-coro)
target_link_libraries(unfold PRIVATE Boost::coroutine semver::semver Boost::filesystem spdlog::spdlog OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries(unfold PRIVATE semver::semver Boost::filesystem spdlog::spdlog OpenSSL::SSL OpenSSL::Crypto)
target_compile_definitions(unfold PRIVATE BOOST_URL_NO_LIB)

target_include_directories(
Expand Down

0 comments on commit 74438b9

Please sign in to comment.