[cmake]: https://cmake.org/ [cmake ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools [cmake presets]: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html [cpp ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools [clangd ext]: https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd [dotnet]: https://dotnet.microsoft.com/en-us/download/dotnet [ninja build]: https://ninja-build.org/ [ninja generator]: https://cmake.org/cmake/help/latest/generator/Ninja.html [ninja multi-config generator]: https://cmake.org/cmake/help/latest/generator/Ninja%20Multi-Config.html [python]: https://www.python.org/ [py venv]: https://docs.python.org/3/library/venv.html [visual studio]: https://visualstudio.microsoft.com/ [visual studio generator]: https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2017%202022.html # C++ Intellisense for Spark on Windows (VS Code) **Steps** 1. Install the **[C++ extension][cpp ext]** 2. Install the **[CMake extension][cmake ext]** 3. Copy `c_cpp_properties.json` from this folder to `$workspaceFolder/.vscode/` 4. In the VS Code Command Palette, run **CMake: Select Configure Preset**, then select '**spark**' from the dropdown **Notes** * Intellisense won't work for generated files/types until you build libspark # C++ Intellisense for Sparkd on Linux (VS Code) 1. Install the **[CMake extension][cmake ext]** 2. Install the **[Clangd extension][clangd ext]** 3. (Optional) Install the **[C++ extension][cpp ext]** (*needed for debugging, but intellisense should work without it*). 4. If the **[C++ extension][cpp ext]** is installed, disable its intellisense in your workspace settings (*Clangd intellisense is better*) ``` "C_Cpp.intelliSenseEngine": "disabled" ``` 5. In the VS Code Command Palette, run **CMake: Select Configure Preset**, then select the **[preset][cmake presets]** you wish to build from the dropdown * *The **Clang** presets may work best with the **Clangd** extension* * *Intellisense won't work for generated files/types until you build libspark* # Build Spark on Windows ### Dependencies * **[CMake][cmake]** (version >= 3.23) * **[Python][python]** (version >= 3.9) * **[Visual Studio][visual studio]** (2022) * **[Dotnet][dotnet]** (sdk version >= 7.0.0) ### References * **[CMakePresets][cmake presets]** * **[Visual Studio 17 2022 (CMake generator)][visual studio generator]** * **[Python Virtual Environment][py venv]** ### Notes * *Run commands from the repo root dir unless otherwise noted* 1. Set up the **[Python virtual environment][py venv]**
``` # Create the virtual environment python3 -m venv .venv # Activate the virtual environment .venv\bin\activate.bat # Update pip python -m pip install --upgrade pip # Install packages pip install -r requirements.txt ``` 2. Build * *Run commands in python virtual environment* ``` # Configure cmake --preset spark # Build Debug cmake --build --preset spark-debug dotnet build spark_client.sln --configuration Debug # Build Release cmake --build --preset spark-release dotnet build spark_client.sln --configuration Release ``` # Build Sparkd on Linux ### **Dependencies** * **[CMake][cmake]** (version >= 3.23) * **[Ninja Build][ninja build]** * **[Python][python]** (version >= 3.9) ### **References** * **[CMakePresets][cmake presets]** * **[Ninja (CMake generator)][ninja generator]** * **[Python Virtual Environment][py venv]** * **[Devcontainer](devcontainer)** ### Prerequisites * Open repository in a VS Code [Devcontainer](../docker/sparkd/dev/README.md), or create your own [docker container](../docker/sparkd/dev/README.md) in which to build ### Notes * *Run commands from the repo root dir unless otherwise noted*
1. Set up the **[Python virtual environment][py venv]** ``` # Create the virtual environment python3 -m venv .venv # Activate the virtual environment . .venv/bin/activate # Update pip python -m pip install --upgrade pip # Install packages pip install -r requirements.txt ``` 2. Build * *Run commands in python virtual environment* ``` # Configure clang debug cmake --preset sparkd-clang-debug # Build clang debug cmake --build --preset spark-clang-debug # Configure gcc release cmake --build --preset sparkd-gcc-release # Build gcc release cmake --build --preset sparkd-gcc-release ``` # Build Spark Api Server on Windows ### **Dependencies** * **[CMake][cmake]** (version >= 3.23) * **[Python][python]** (version >= 3.9) * **[Visual Studio][visual studio]** (version) * **[Dotnet][dotnet]** (sdk version >= 7.0.0) ### **References** * **[CMakePresets][cmake presets]** * **[Visual Studio 17 2022 (CMake generator)][visual studio generator]** * **[Python Virtual Environment][py venv]** ### Notes * *Run commands from the repo root dir unless otherwise noted* 1. Set up the **[Python Virtual Environment][py venv]** ``` # Create the virtual environment python3 -m venv .venv # Activate the virtual environment .venv\bin\activate.bat # Update pip python -m pip install --upgrade pip # Install packages pip install -r requirements.txt ``` 2. Build * *Run in python virtual environment* ``` # Configure cmake --preset spark-api-server-windows # Build debug cmake --build --preset spark-api-server-windows-debug dotnet build Spark.Api.Server.sln --configuration Debug # Build release cmake --build --preset spark-api-server-windows-release dotnet build Spark.Api.Server.sln --configuration Release ``` # Build Spark Api Server on Linux ### **Dependencies** * **[CMake][cmake]** (version >= 3.23) * **[Ninja Build][ninja build]** * **[Python][python]** (version >= 3.9) * **[Dotnet][dotnet]** (sdk version >= 7.0.0) ### **References** * **[CMakePresets][cmake presets]** * **[Ninja Multi-Config (CMake generator)][ninja multi-config generator]** * **[Python Virtual Environment][py venv]** ### Prerequisites * Open repository in a VS Code [Devcontainer](../docker/sparkd/dev/README.md), or create your own [docker container](../docker/sparkd/dev/README.md) in which to build ### Notes * *Run commands from the repo root dir unless otherwise noted* 1. Set up the **[Python Virtual Environment][py venv]** ``` # Create the virtual environment python3 -m venv .venv # Activate the virtual environment . .venv/bin/activate # Update pip python -m pip install --upgrade pip # Install packages pip install -r requirements.txt ``` 2. Build * *Run in python virtual environment* ``` # Configure cmake --preset spark-api-server-linux # Build debug cmake --build --preset spark-api-server-linux-debug dotnet build Spark.Api.Server.sln --configuration Debug # Build release cmake --build --preset spark-api-server-linux-release dotnet build Spark.Api.Server.sln --configuration Release ```