From 546aef853eeee2e5936a5d89f0a281e7fd73e857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CKatrinBistreck=E2=80=9D?= <“katrin.bistreck@tuhh.deâ€> Date: Thu, 21 Nov 2024 14:09:53 +0100 Subject: [PATCH] change installation order for build environment and other small changes --- docs/developer/build-environment/windows.md | 39 ++++++++++++++------- docs/developer/build/cpp.md | 2 +- docs/developer/build/general.md | 2 ++ docs/download/installation.md | 4 +-- docs/tutorials/seperate-tool-execution.md | 28 +++++++++++---- 5 files changed, 52 insertions(+), 23 deletions(-) diff --git a/docs/developer/build-environment/windows.md b/docs/developer/build-environment/windows.md index 8ea2ccf..d2bea3d 100644 --- a/docs/developer/build-environment/windows.md +++ b/docs/developer/build-environment/windows.md @@ -18,11 +18,18 @@ The tools used are: --- +## Install Git +- Download and Install the latest release of **Git**: [Download Git :octicons-link-external-16:](https://git-scm.com/download/win){:target="_blank"} +- Enable the option to make **Git** available in *PATH*. +- Leave the rest of the options to their defaults. + +--- + ## Install Python - Download and install **Python**: [Download Python :octicons-link-external-16:](https://www.python.org/downloads/windows/){:target="_blank"} !!! warning - Please install version **3.11**, select all the default options and check the option to add Python to *PATH* & make sure to include the debug binaries! + Please install version **3.11.8**, select all the default options and check the option to add Python to *PATH* & make sure to include the debug binaries!  @@ -36,10 +43,24 @@ pip install pipenv --- -## Install Git -- Download and Install the latest release of **Git**: [Download Git :octicons-link-external-16:](https://git-scm.com/download/win){:target="_blank"} -- Enable the option to make **Git** available in *PATH*. -- Leave the rest of the options to their defaults. +## Install CMake +- Download and Install the latest release of **CMake**: [Download CMake :octicons-link-external-16:](https://cmake.org/download/){:target="_blank"} + +!!! important + Install at least version **3.29**! + +- Enable the option to make **CMake** available in *PATH*. + +--- + +## Install VS Code (optional) +If you'd like to use VS Code as your IDE and haven't installed it yet, now it's the right time for it :clock: +You can download it from the official website: [Download Visual Studio Code :octicons-link-external-16:](https://code.visualstudio.com/Download) +Afterwards, you can freely decide on installing nice extensions as: + - C/C++, C/C++ Extension Pack, C/C++ Themes: for a convenient working environment in C++ + - CMake, CMake Tools: for build process within your IDE + - cpp-check-lint: for style checks during coding + - ... --- @@ -84,15 +105,7 @@ git clone https://github.com/microsoft/vcpkg.git You can get more information how *vcpkg* can be installed in the [Readme :octicons-link-external-16:](https://github.com/microsoft/vcpkg/?tab=readme-ov-file#getting-started){:target="_blank"} of the project itself. ---- - -## Install CMake -- Download and Install the latest release of **CMake**: [Download CMake :octicons-link-external-16:](https://cmake.org/download/){:target="_blank"} -!!! important - Install at least version **3.29**! - -- Enable the option to make **CMake** available in *PATH*. diff --git a/docs/developer/build/cpp.md b/docs/developer/build/cpp.md index d267d81..e0b81b5 100644 --- a/docs/developer/build/cpp.md +++ b/docs/developer/build/cpp.md @@ -126,7 +126,7 @@ Read more about the configuration and additional possible flags you can set [her ## Build {#build} ### Build specific target -So to build a specific target you call **CMake** with the following command, where `build` is the created build directory and `<target>` is the name of the module you want to compile: +So to build a specific target you call **CMake** with the following command, where `<target>` is the name of the module you want to compile: === "Windows" diff --git a/docs/developer/build/general.md b/docs/developer/build/general.md index ae877bc..062acdb 100644 --- a/docs/developer/build/general.md +++ b/docs/developer/build/general.md @@ -14,6 +14,8 @@ To understand **UNICADO's code base**, there are some things you need to know: CMake is a build system generator, which allows for cross-platform compilation. For more information about this system, please refer to its [Documentation :octicons-link-external-16:](https://cmake.org/cmake/help/latest/){:target="_blank"}. +A step by step guide on how to build UNICADO modules can be found [here](cpp.md) for C++ modules or [here](python.md) for python modules, respectively. + ## Some words about :simple-cmake: CMake In UNICADO, CMake plays a crucial role as our build system generator. CMake simplifies the process of generating platform-specific build files, making it easier to compile the code across various operating systems. This is especially useful for developers, as it ensures consistency and efficiency in building executables regardless of the environment. diff --git a/docs/download/installation.md b/docs/download/installation.md index 87fba2b..30ae5c4 100644 --- a/docs/download/installation.md +++ b/docs/download/installation.md @@ -16,7 +16,8 @@ - [:simple-git: Git :octicons-link-external-16:](https://git-scm.com/downloads) *(must be accessible from a terminal, i.e. added to your PATH variable if not)* - [:fontawesome-brands-java: Java Runtime Environment :octicons-link-external-16:](https://jdk.java.net/) *(download zip file, unzip to e.g. `C:\Programs`, add `bin` folder of JDK to your **PATH** variable)* - [RCE :octicons-link-external-16:](https://rcenvironment.de/) *integration platform (download zip file, unzip to e.g. `C:\Programs`)* -- [gnuplot :octicons-link-external-16:](https://sourceforge.net/projects/gnuplot/) for generating plots with matplot++ +- [gnuplot :octicons-link-external-16:](https://sourceforge.net/projects/gnuplot/) for generating plots with matplot++ (download and add `bin` folder to your **PATH** variables) +- [Inkscape :octicons-link-external-16:](https://inkscape.org/release/inkscape-1.4/) for creating plots for pdf reports (download and add `bin` folder to your **PATH** variables) !!! note Please check the [RCE Updates Website :octicons-link-external-16:](https://rcenvironment.de/pages/updatessecurity.html) for which Java version is working with the respective RCE version. Currently, e.g. Java **11.x** is recommended for the current released @@ -25,7 +26,6 @@ - [TiGL :octicons-link-external-16:](https://dlr-sc.github.io/tigl/) 3.x for visualizing the aircraft geometry - [MikTex :octicons-link-external-16:](https://miktex.org/) for creating pdf reports -- [Inkscape :octicons-link-external-16:](https://inkscape.org/release/inkscape-1.4/) for creating plots for pdf reports --- diff --git a/docs/tutorials/seperate-tool-execution.md b/docs/tutorials/seperate-tool-execution.md index 50f2410..bb6f34d 100644 --- a/docs/tutorials/seperate-tool-execution.md +++ b/docs/tutorials/seperate-tool-execution.md @@ -1,3 +1,5 @@ +> :construction: Under construction. Needs to be checked for final folder structure. + You want to execute UNICADO tools separately? Here we go: ## Requirements @@ -6,9 +8,11 @@ Ensure that you have cloned the following repositories: - **Aircraft Design** - aircraft design tools (including the submodule `libs`) - **Aircraft References** - aircraft reference designs +- **Engines** - engine data If you haven't yet, don't worry: just follow [these](../developer/get-source-code.md) instructions before continuing. +Ensure, that you have checked out the same branch (e.g. `develop`) for both **Aircraft Design** and **Engines**, as they are synchronized on remote and a running couple. For testing purposes you most probably will choose the CSMR-2020 aircraft reference. Therefore, checkout the *CSMR-2020* branch from the **Aircraft References** repo. --- @@ -19,14 +23,16 @@ For creating a **project environment** you have several options ðŸŸ. Here we'll - Create a new folder for your project environment **or** use the folder where you have cloned the **Aircraft Design** repo. Both will be calles **project environment** in the following. -- Inside your **project environment**, create the folders **Gnuplot** and **Inkscape**. Copy the **content** of the `bin/` from their installation directory to the newly created folders. +- In case you are **not** using the local copy itself as a **project environment**: Copy the tool(s) you want to execute / test (e.g. *initialSizing*) **AND** the folder `libs` from your local copy of **Aircraft Design** to your **project environment** -- Copy the tool(s) you want to execute / test (e.g. *initialSizing*) **AND** the folder `libs`from your local copy of **Aircraft Design** to your **project environment** (only in case you are **not** using the local copy itself as a **project environment**) +- Inside your **project environment**, create the folders **Gnuplot** and **Inkscape**. Copy the **content** of the `bin/` from their installation directories to the newly created folders. - Create a new folder **databases** inside your **project environment** - Inside **databases**, create a folder **airfoils** - - From 'libs/airfoils', copy the folder F15 and NACA to the newly created **airfoils** + - From 'libs/airfoils', copy the folder F15 and NACA to the newly created **airfoils** directory + - Inside **databases**, create a folder **engine** + - From your **Engines** repo, copy the folder PW1127G-JM to the newly created **engine** directory - Create a folder named **projects** within your **project environment** - Within your **projects** folder create a folder named as the aircraft class, e.g. CSMR @@ -44,6 +50,7 @@ For creating a **project environment** you have several options ðŸŸ. Here we'll If you made everything correctly, your folder structure inside your project environment will include at least following folders and files: ``` +project environment ├── module_name/ │ ├── module_name.exe │ └── module_name_config.xml @@ -70,7 +77,7 @@ If you made everything correctly, your folder structure inside your project envi ## Aircraft Design Tool Dependencies -Suppose you use an empty aircraft exchange file (described above in option **1.**). +Suppose you use an empty aircraft exchange file (described above in option 1). The aircraft design tools have dependencies, e.g. a fuselage 🳠has to exist in order to mount wings ðŸ¦. An aircraft geometry has to be available in order to conduct an aerodynamic analysis. Therefore the tools can be executed based on their dependencies in the following sequence: @@ -91,6 +98,11 @@ Therefore the tools can be executed based on their dependencies in the following - cost_estimation - ecological_assessment +!!! warning + If you use a converged aircraft file (described above in option 2): + Be aware that due to the module dependencies, there will probably be inconsistencies in the resulting aircraft file. + After a single module execution, the aircraft will not be a valid configuration anymore. + --- ## Tool execution @@ -117,12 +129,14 @@ If this is already done and an executable is present, then you can execute the r ./initialSizing.exe ``` -If you want to examine the terminal outputs we've got you covered: `.log`-files are written for each tool. +If you want to examine the terminal outputs we've got you covered: `.log`-files are written for each tool (if not: activate `log_file_output` in the config file). ## Troubleshooting The module throws an error? - Read the error message carefully. -- ""Most probably either a file is missing in your project environment or some content within an file is lacking. Double check the description of the project environment and tool dependencies. +- "Node not existing" / "File not found" or similar: Most probably either a file is missing in your project environment or some content within an file is lacking. Double check the description of the project environment and tool dependencies. +- "Can't open ...": If the file exist, make sure it is currently not used by another application. +- "ModuleNotFoundError: No Module named 'runmodule'": you try to execute a python tool which was not built correctly. Make sure to intall the python_packages before building the modudule. Go back to [build/python](../developer/build/python.md), follow the instruction and keep an eye on error messages during the build process. -- "ModuleNotFoundError: No Module named 'runmodule'": you try to execute a python tool which was not built correctly. Go back to [build/python](../developer/build/python.md), follow the instruction (install the python_packages!) and keep an eye on error messages during the build process. +## Video tutorial \ No newline at end of file -- GitLab