#2017-03-28# This is a package to build the OSIRIS Level 1 Services. The code has evolved over the years but as of March 2017 the code has been moved into the ARG_Packages group of the ARG Gitlab server. ## Building the code on Windows ## The build of the **OSIRISLevel1Services** is now dependent upon a successful build of the **SasktranCoreComponents** as many of the C++ libraries used by **OSIRISLevel1Services** are now fully contained in the **SasktranCoreComponents**. On Windows, the Visual Studio build assumes that you have checked out **OSIRISLevel1Services** and **SasktranCoreComponents** into the same folder, see diagram below. In addition you need to checkout the ThirdParty/PrebuiltWindowsLibs from ARG Gitlab to any location on your system. ## Building the code on Linux ## The linux python wheel can be built from source code through executing the script, ``` ./buildosiris -b -i -l -p ``` but you must build and install the pre-requisite third party libraries. Follow the instructions on https://arggit.usask.ca/ThirdParty/LinuxBuildScripts for more details. The installed third party libraries are placed in a directory such as ~/thirdparty and then * ` = ~/thirdparty/include` * ` = ~/thirdparty/lib` The script supports the following command line options: * **-b** `` : The installation folder. Libraries and python wheels are placed in this folder, The default `~/localinstall`. * **-i** `` : Directories of header files of third party software, colon separated list, default is `~/thirdparty/include/`. * **-l** `` : Directories of third party libraries, colon separated list, default is `~/thirdparty/lib/`. * **-p** `` : Build the wheel using the specified python environment via `source activate `. The default is the current python environment. * **-m** : Build a **manylinux** python wheel. You must be in a suitable Docker environment. The default will not build the manylinux wheel. * **-c** : clean the projects as they are built. Default is not to clean." * **-g** : Build debug versions. Note this is not well tested and you may encounter issues. You should also ensure the project is clean" * **-h** : print this list of commands and exit" The script defaults are setup to work *as-is* on the Docker environment on `lloyd.usask.ca`. Login into `lloyd.usask.ca` using your credentials and then build the environment: simply start the [docker environment](https://arggit.usask.ca/ThirdParty/LinuxBuildScripts/wikis/manylinux-build) with the third party libraries pre-installed and build the code. Here is an example to build the manylinux wheel for python 3.6 > sudo docker run -v /media/users:/media/users -it arg-manylinux-build:v0.4 /bin/bash > mkdir sources > git clone git@arggit.usask.ca:ARGPackages/OSIRISLevel1Services.git > cd OSIRISLevel1Services > ./buildosiris -m -p py36