Surface Pro Xを手に入れた経緯はこちらをご覧ください。
さて、そのSurface Pro XですがもちろんARMなCPUです。なんかよくわからんのですが、Win32なアプリはエミュレーションでx86版を動かすことができるということなので、今のところ多くのソフトを動かすことができます。
しかし、ネイティブアプリ使ってみたいじゃないですか。というわけで、TheDeskのビルドに挑戦してみました。
TheDeskは、mastodonクライアントのうちPCをターゲットにしたアプリです。
まあ、普通に考えれば、Win32版のインストーラダウンロードして動かせばいいのです。動きます。でも面白くない(ぇ)。
で、ソースが公開されているのでビルドしてみます。ただし、今回いろいろ試行錯誤しているので、ビルドが成功する環境を再現できるかわかりません。
まず、ARM64ネイティブのnode.jsを動かしてみます。
このページから非公式版をたどってみました。
www.reddit.com
node-v12.7.0-win-arm64.zipというファイルをダウンロードして展開します。展開したフォルダの中にある「install_tools.bat」を管理者権限で起動したコマンドプロンプトで実行すると、node.jsのネイティブビルドに必要な各種ファイルを順番にインストールしてくれます。ひとまずこれを実施しています。
これが終わったら、管理者権限ではなくても問題ないはずですがコマンドプロンプトで「nodevars.bat」を実行すると、環境変数に一時的にいろいろ設定して自分のホームフォルダに移動となります。
さあ、あとはビルドするだけと思ったのですが、この環境ではどこかのモジュールをうまく実行できてないのか失敗します。なので、win32版のnode.jsを次にインストールします。
nodejs.org
32ビット版windowsのインストーラをダウンロードして実行してください。これでwin32のビルドができるようになります。
あとはTheDeskのGithubのレポジトリを見てビルドすれば・・・といいたいところですが、残念ながらARM64版のネイティブアプリをそのままでは作ることはできません。
gitはどうしたかなあ。インストールしたんかな?忘れました。必要に応じてインストールしてください。
まずは、一番最初のビルド前半部分です。
git clone https://github.com/cutls/TheDesk cd TheDesk/app npm install npm install --only=dev npm run construct
たぶんgitができれば後のところは普通に通るはずです。あ、ARM64版のNode.jsのnodevars.batは実行しちゃだめですよ。それ無しです。ここではx86のwin32版としてビルドします。
npm run build
これが通ればあと少しです。次にelectron-packagerをインストールします(多分必要)。
npm install electron-packager
ここからが本番。一度「app」フォルダから「TheDesk」フォルダに一段移動してから次のコマンドを実行します。
node app\node_modules\electron-packager\bin\electron-packager.js ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --win32metadata.CompanyName="TheDesk&Cutls.com" --win32metadata.FileDescription="TheDesk" --win32metadata.OriginalFilename="TheDesk" --win32metadata.InternalName="TheDesk" --win32metadata.ProductName="TheDesk" --platform=win32 --arch=arm64 --electron-version=8.0.0 --icon=.\app\build\thedesk.ico --overwrite
「--arch=arm64」が肝ですね。これを指定すれば、electronのARM版がダウンロードされパッケージされてexeファイルが作られます。
問題なく実行ファイルが作成されれば、「TheDesk-win32-arm64」というフォルダが「TheDesk」フォルダの下にできますので、そのフォルダに移動して「TheDesk.exe」を実行してください。
なお、初期設定がそのままうまくいくかわからないので、win32版で初期設定を済ませてからこっちの実行ファイルを動かすほうが楽です。
ネイティブアプリだと、「(32ビット)」の文字が消えます。
他のソース公開されているelectronアプリでも応用が利くかもしれないので、チャレンジしてみてください。