mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-16 18:42:30 +03:00
b21e05ae5f
GITHUB_PR_NUMBER: 8408 GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/8408 PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4282 Co-authored-by: Nico Burns <1007307+nicoburns@users.noreply.github.com> GitOrigin-RevId: 1dfccd53bbb6a5df0554a6990df6e8af82c1f298
3.0 KiB
3.0 KiB
Compile a native arm64 graphql-engine executable on M1 using brew and ghc-8.10.7
-
Install ghc-8.10.7 and cabal-install via ghcup
-
Install dependencies:
brew install google-cloud-sdk brew install node@14 brew install openssl brew install pcre brew install unixodbc brew install libpq brew install mysql-client@5.7 brew install libffi brew install llvm@11 brew install mssql-tools
And add them to your environment:
echo 'export PATH="/opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/opt/homebrew/opt/node@14/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/opt/homebrew/opt/mysql-client@5.7/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/opt/homebrew/opt/llvm@11/bin:$PATH"' >> ~/.zshrc
-
Install console assets
This step may require you to have python2 installed and available in your $PATH.
cd console npm ci npm run server-build cd ..
-
Install python
export PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig" export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib" export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include" cd server python3 -m venv .python-venv source .python-venv/bin/activate pip3 install -r tests-py/requirements.txt (cd tests-py/remote_schemas/nodejs && npm ci)
-
Add the C dependencies in the
cabal/dev-sh.project.local
andcabal.project.local
files (according to where the dependencies were installed by homebrew):package mysql extra-include-dirs: /opt/homebrew/opt/openssl/include /opt/homebrew/opt/mysql-client@5.7/include extra-lib-dirs: /opt/homebrew/opt/openssl/lib /opt/homebrew/opt/mysql-client@5.7/lib package odbc extra-include-dirs: /opt/homebrew/opt/unixodbc/include extra-lib-dirs: /opt/homebrew/opt/unixodbc/lib package pcre-light extra-include-dirs: /opt/homebrew/opt/pcre/include extra-lib-dirs: /opt/homebrew/opt/pcre/lib package postgresql-libpq extra-include-dirs: /opt/homebrew/opt/libpq/include /opt/homebrew/opt/openssl/include extra-lib-dirs: /opt/homebrew/opt/libpq/lib /opt/homebrew/opt/openssl/lib package pg-client extra-include-dirs: /opt/homebrew/opt/libpq/include /opt/homebrew/opt/openssl/include extra-lib-dirs: /opt/homebrew/opt/libpq/lib /opt/homebrew/opt/openssl/lib
Note: If you have not added any local project overrides in
cabal.project.local
you can just add a symbolic link tocabal/dev-sh.project.local
:ln -s cabal/dev-sh.project.local cabal.project.local
-
Building the server should now work:
cabal v2-update cabal v2-build graphql-engine -j4