Setting up the development environment for the vscode-opencl extension.
- Ensure you have
npminstalled. - Install the necessary packages for the extension using
npm install.
-
Clone or update the opencl-language-server:
git clone git@github.com:Galarius/opencl-language-server.git server cd server -
Refer to the
DEV.mdfile inside theserverdirectory for detailed setup instructions.[optional] Inside the
serverdirectory, use the following commands to generate an Xcode project:mkdir .build-xcode && cd .build-xcode cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE="../.conan-install/build/Debug/generators/conan_toolchain.cmake" -DENABLE_TESTING=ON .. -
Modify the
OPENCL_LANGUAGE_SERVERpath in.vscode/launch.jsonif needed.
pushd ./bin/darwin
curl --remote-name-all --location $( curl -s https://api.github.com/repos/Galarius/opencl-language-server/releases/latest | grep "browser_download_url.*darwin-universal" | cut -d : -f 2,3 | tr -d \" )
tar -xzvf opencl-language-server-darwin-universal.tar.gz
rm opencl-language-server-darwin-universal.tar.gz
popdSign the executable
codesign -s $SIGNING_IDENTITY --timestamp --force --options runtime ./bin/darwin/opencl-language-server
codesign -vvvv ./bin/darwin/opencl-language-serverArchive the executable
(cd ./bin/darwin; zip opencl-language-server.zip opencl-language-server)Perform the notarization
(cd ./bin/darwin; xcrun notarytool submit opencl-language-server.zip --keychain-profile $PROFILE --wait)Troubleshooting
pushd ./bin/darwin
xcrun notarytool history --keychain-profile $PROFILE
xcrun notarytool info --keychain-profile $PROFILE $SUBMISSION_ID
xcrun notarytool log --keychain-profile $PROFILE $SUBMISSION_ID
popdVerify the notarization
spctl --assess -vv --type install ./bin/darwin/opencl-language-serverRemove the archive
rm ./bin/darwin/opencl-language-server.zippushd ./bin/linux/x64
curl --remote-name-all --location $( curl -s https://api.github.com/repos/Galarius/opencl-language-server/releases/latest | grep "browser_download_url.*linux-x86_64" | cut -d : -f 2,3 | tr -d \" )
tar -xzvf opencl-language-server-linux-x86_64.tar.gz
rm opencl-language-server-linux-x86_64.tar.gz
popd
pushd ./bin/linux/arm64
curl --remote-name-all --location $( curl -s https://api.github.com/repos/Galarius/opencl-language-server/releases/latest | grep "browser_download_url.*linux-arm64" | cut -d : -f 2,3 | tr -d \" )
tar -xzvf opencl-language-server-linux-arm64.tar.gz
rm opencl-language-server-linux-arm64.tar.gz
popdpushd ./bin/win32
curl --remote-name-all --location $( curl -s https://api.github.com/repos/Galarius/opencl-language-server/releases/latest | grep "browser_download_url.*win32" | cut -d : -f 2,3 | tr -d \" )
tar -xzvf opencl-language-server-win32-x86_64.zip
rm opencl-language-server-win32-x86_64.zip
popdpushd ./bin
curl --remote-name-all --location $( curl -s https://api.github.com/repos/Galarius/opencl-language-server/releases/latest | grep "licenses.tar.gz" | tail -n -1 | cut -d : -f 2,3 | tr -d \" )
tar -xzvf licenses.tar.gz
rm licenses.tar.gz
popd- Install
vsce:npm install -g @vscode/vsce. - Create the extension package locally using
vsce package. - Publish the extension with
vsce publish.
- Install
npx:npm install -g npx. - Follow the publishing guidelines available at https://github.com/eclipse/openvsx/wiki/Publishing-Extensions.
- Publish the extension using
npx ovsx publish.
- Install
npm-check-updates:npm i -g npm-check-updates. - Run
ncu -uto upgrade. - Install the updated packages with
npm install.