166 lines
7.1 KiB
Plaintext
166 lines
7.1 KiB
Plaintext
====Compiling the native Windows EFL ====
|
|
=== Preparing the build environment ===
|
|
|
|
The steps below correspond to the preparation of the **EFL native windows** compilation environment.
|
|
|
|
<note important>
|
|
**[Note!]**
|
|
|
|
These steps were tested on Windows server 2019 64bit and Windows 10 64bit.
|
|
</note>
|
|
|
|
Except for topic 6 (Environment variables) that can be consulted during the process of preparing the environment, the ideal is that the steps are fulfilled in the proposed order.
|
|
|
|
- Visual Studio installation
|
|
- Meson
|
|
- LLVM
|
|
- Vcpkg
|
|
- Environment variables
|
|
- Compiling the EFL
|
|
|
|
----
|
|
|
|
=== 1 - Visual Studio installation ===
|
|
|
|
* Download the software from the official website: [[https://visualstudio.microsoft.com/|Visual Studio]];
|
|
|
|
* Choose the option you want. The most basic and free version is the [[https://visualstudio.microsoft.com/pt-br/thank-you-downloading-visual-studio/?sku=Community&rel=16 |Community]] version;
|
|
|
|
* After installation add the build package for C and C++;
|
|
|
|
* If there is no list of options for including the package, complete the installation and, in the Start Menu, search for Visual Studio Installer. You can add the package to C/C++, update or check if it was successfully installed.
|
|
|
|
----
|
|
|
|
=== 2 - Meson ===
|
|
|
|
2.1. Install [[https://pypi.org/project/meson/|Meson]] using the following command on the terminal (CMD or Developer Command Prompt from Visual Studio):
|
|
|
|
<code>
|
|
> pip install --user meson
|
|
</code>
|
|
|
|
> The version of meson used in this tutorial is the **0.53.2**. It is possible to directly install this version with:
|
|
> <code>> pip install meson==0.53.2</code>
|
|
> To check the installed version, use ''meson --version'' (or use ''pip freeze'' to check all installed packages and their versions).
|
|
|
|
> Check the python version installed on your Windows. In this tutorial we are using Python 3.8
|
|
|
|
2.2. At the end of the previous step, open a new terminal, type the command below and press enter:
|
|
|
|
<code>
|
|
> meson --version
|
|
</code>
|
|
|
|
The result should look like this:
|
|
<code>
|
|
0.53.2
|
|
</code>
|
|
|
|
If the command is not recognized, finish the environment variables step and try again. For additional help, check [[https://mesonbuild.com|The meson Official documentation]].
|
|
|
|
|
|
----
|
|
|
|
=== 3 - LLVM ===
|
|
|
|
3.1. Download LLVM from [[https://github.com/llvm/llvm-project/releases/|LLVM's official page]]. The version used in this tutorial is 9.0.1.
|
|
|
|
> Upon entering the corresponding section with the chosen version, a file with the following description (in this case with version 9.0.1) must be located: ''LLVM-9.0.1-win64.exe''. Download this file.
|
|
|
|
3.2. When installing, it is important to select at least one of the options below:
|
|
|
|
>[x] Add LLVM to the system PATH for all users.
|
|
>[x] Add LLVM to thr system PATH for current user.
|
|
|
|
In this tutorial, we install it in ''C:\Program Files\LLVM''.
|
|
|
|
----
|
|
|
|
=== 4. VCPKG ===
|
|
|
|
Vcpkg is not strictly necessary, since you could install each of the dependencies separately and make sure cmake finds it, but it is a more convenient way to do so and it is supported by EFL's current build system.
|
|
|
|
To manage dependencies with vcpkg:
|
|
|
|
4.1. Follow the **Vcpkg Installation Guide** in [[https://github.com/microsoft/vcpkg|Vcpkg's Github Repository]].
|
|
|
|
4.2. Install the following dependencies:
|
|
|
|
- OpenSSL;
|
|
- Freetype;
|
|
- Check;
|
|
- Libpng;
|
|
- Zlib.
|
|
|
|
Or, in a single command line (considering vcpkg is in your PATH or that you're inside vcpkg's directory):
|
|
|
|
<code>
|
|
> vcpkg install openssl freetype check libpng zlib
|
|
</code>
|
|
|
|
This way vcpkg will download, setup and install all of those dependencies.
|
|
|
|
4.3. Send vcpkg toolchain file to meson
|
|
|
|
The cmake found by meson still has to find the dependencies, but vcpkg's installed libraries aren't found by default. For that, [vcpkg's docummentation](https://github.com/microsoft/vcpkg#using-vcpkg-with-cmake) recommends using the cmake argument ''CMAKE_TOOLCHAIN_FILE'' to point to vcpkg's toolchain file. In current EFL build, to do that, you may set the variable ''VCPKG_TOOLCHAIN_FILE'' which is automatically sent to meson when calling ''configure.bat''.
|
|
|
|
<note>
|
|
**[Hint]**
|
|
|
|
You can create an environment ''env.bat'' file in EFL's root (e.g. ''C:/Users/Someone/efl/env.bat'') before calling ''configure.bat'', containing for example (considering vcpkg is installed in ''C:/Users/Someone/vcpkg''):
|
|
|
|
<code>
|
|
set vcpkg_toolchain_file=C:/Users/Someone/vcpkg/scripts/buildsystems/vcpkg.cmake
|
|
</code>
|
|
|
|
This file is run everytime by ''configure.bat'' as a special way to set local custom environment variables.
|
|
</note>
|
|
|
|
----
|
|
|
|
=== 7 Windows Environment Variables ===
|
|
|
|
* This module aims to check environment variables.
|
|
|
|
==Python==
|
|
|
|
<note important>
|
|
**[OBS]**
|
|
|
|
Python paths in this tutorial consider that the current installed Python version is 3.8. Don't forget to check the respective paths according to the location of your current Python installation.
|
|
</note>
|
|
|
|
During python installation, you can select the option to add python environment variables automatically. If there is a problem with Meson, check the existing variables and add as shown below:
|
|
* Open the windows environment variable editor, for the variables corresponding to the user, locate **''path''** and double-click it (or click the Edit button). In the next window, click the "New" button and add the following directories:
|
|
* <code>C:\Users\<your-username>\AppData\Roaming\Python\Python38\Scripts</code>
|
|
* <code>C:\Python38</code>
|
|
* <code>C:\Python38\Scripts</code>
|
|
|
|
==OpenSSL==
|
|
|
|
In case you're using a custom OpenSSL installation (not the one from vcpkg), you may want to set ''OPENSSL_DIR'' environment variable in order to EFL search for your installation instead of vcpkg's. For this:
|
|
* Open the windows environment variable editor. In user's variable list, click **New**:
|
|
* Set **Variable name** to:
|
|
* <code>OPENSSL_DIR</code>
|
|
* Set **Variable value** to your OpenSSL installation path, for example:
|
|
* <code>C:\Users\<your-username>\AppData\Local\efl\openssl</code>
|
|
* For clarification: ''OPENSSL_DIR'' must point to the directory where the file ''libssl.lib'' and the directory ''include/'' are located.
|
|
|
|
The current build system will also warn you about this file.
|
|
|
|
----
|
|
|
|
=== 7 - Compiling EFL ===
|
|
|
|
* Choose a directory to clone **EFL** repository;
|
|
* Clone the [[https://github.com/expertisesolutions/efl.git|EFL Native Windows Repository]] repository.
|
|
* Open Visual Studio's **Developer Command Prompt** in the EFL directory and run the following command:
|
|
* <code>> configure.bat</code>
|
|
* If an error occurs in this step, it is generally due to opening a regular Command Prompt (instead of VS's Developer Command Prompt). In that case, you may manually setup the developer prompt by entering the following command:
|
|
* <code> > "C:\Program Files (x86)\Microsoft Visual Studio\<VS version>\<VS edition>\VC\Auxiliary\Build\vcvars64.bat"</code>
|
|
* If it still does not work, try to:
|
|
- Delete the ''build'' directory;
|
|
- Delete every subdirectory inside ''subprojects'' (**NOTE: Do NOT delete the .wrap files!**)
|
|
* After you finish, rerun **configure.bat**, execute **build.bat**:
|
|
* <code>> build.bat</code> |