.. _ref_getting_started_windows: Windows Enviorment ================== Setting up your development enviorment for the Windows OS is used to build LinQ Networking Applications that run on Windows 10 operating system. The Windows Development enviorment does not support running the test framework and is only supported for application development. The Windows Development enviorment may be used to build embedded linux distributions but this is not supported. For Embedded Linux target installations, please refer to setting up your Linux host machine. Required Packages ----------------- The following packages are required to get your Windows OS up and running. *If you find any packages are missing please add them to the list by submitting a PR* 1. `Git `_ .. note:: Config your git to play nice with others .. code-block:: bash git config --global core.eol lf git config --global core.filemode false .. warning:: Git For Windows does not bundle a proper version of perl that supports Windows and does not support Windows file path syntax correctly. See reference to issue `here `_ As a workaround - you should pass a proper perl binary when compiling LinQ Network with OPENSSL ssl backend. IE: .. code-block:: bash cmake -DPERL_EXECUTABLE=/c/Strawberry/perl/bin/perl.exe -DBUILD_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=./install 2. `Microsoft Visual Studio 2019 (Community Edition) `_ 3. `LLVM `_ 4. `CMake `_ 5. `Docker Community `_ (Recommended for development using hardware containers) .. note:: Configure your docker to run Linux Containers per the Windows Docker documentation .. warning:: If docker does not support your Windows Installation well, try and use `Docker Toolbox `_ 6. `Rust `_ (Recommended for building command line utilities and Rust bindings) 7. `NodeJS + NPM `_ (Recommended for building the NodeJS bindings) 8. `Go `_ (Recommended for building the Go bindings) 9. `Python `_ (Recommended for building the Python bindings) 10. `Openssl `_ (Recommended for building HTTP server with OpenSSL as TLS backend) Installation ------------ The following terminal commands show how to build and install the linq-network library to the linq-network/build-windows/install directory. .. code-block:: bash git clone https://bitbucket.org/Altronix/linq-network cd linq-network git submodule update --init mkdir build-windows cd build-windows cmake -DCMAKE_ISNTALL_PREFIX=./build-windows/install .. cmake --build ./build-windows --target install --config MinSizeRel .. warning:: Windows does not support the CMAKE_BUILD_TYPE flag during configuration step. To configure the BUILD_TYPE use the --config switch during the compilation step. .. note:: For a list of configuration options, use cmake -LH command. See a description of the configuration parameters here: :ref:`ref_getting_started_configuration`