# \`PARAVIEW\_BUILD\_EDITION\` has no impact on ccmake list

**URL:** https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897
**Category:** ParaView Support
**Created:** [August 31, 2021, 1:44pm UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897 "2021-08-31T13:44:24Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![bastian](https://discourse.paraview.org/user_avatar/discourse.paraview.org/bastian/32/7513_2.png) [@bastian](https://discourse.paraview.org/u/bastian)
#### Post date: [August 31, 2021, 1:44pm UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/1 "2021-08-31T13:44:24Z")

</div>

I am trying to understand the PARAVIEW\_BUILD\_EDITION keyword used in the build process and there is something that I find really puzzling:

[ParaView/Documentation/dev/build.md at master · Kitware/ParaView · GitHub](https://github.com/Kitware/ParaView/blob/master/Documentation/dev/build.md) reads:

> `CANONICAL` (default): Build modules necessary for standard ParaView build.

OK, so a default Paraview build has a large number of features activated, including support for png output and ffmpeg. However, if I run:

```plaintext
git clone --recursive https://gitlab.kitware.com/paraview/paraview-superbuild.git
cd paraview-superbuild
git checkout v5.9.1
git submodule update
cd ..

mkdir ParaView-5.9.1
cd ParaView-5.9.1

cmake -DPARAVIEW_BUILD_EDITION=CANONICAL \
-DENABLE_python3=ON \
../paraview-superbuild/

```

And then consult the build settings through `ccmake .` I get a list with almost everything deactivated, including png and ffmpeg.

In fact, the list is always the same regardless of the value I provide to `PARAVIEW_BUILD_EDITION`.

**Is the list not representative of what is going to be built?**

---

<div class="post-metadata">

### Author: ![utkarsh.ayachit](https://discourse.paraview.org/user_avatar/discourse.paraview.org/utkarsh.ayachit/32/39_2.png) [@utkarsh.ayachit](https://discourse.paraview.org/u/utkarsh.ayachit)
#### Post date: [August 31, 2021, 1:49pm UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/2 "2021-08-31T13:49:35Z")

</div>

`PARAVIEW_BUILD_EDITION` controls which modules within the ParaView build itself are enabled/disabled. The superbuild, on the other hand is used to build external libraries together with ParaView. `PARAVIEW_BUILD_EDITION` does not impact the Superbuild. You have manually enable / disable external libraries you want the superbuild to build.

---

<div class="post-metadata">

### Author: ![bastian](https://discourse.paraview.org/user_avatar/discourse.paraview.org/bastian/32/7513_2.png) [@bastian](https://discourse.paraview.org/u/bastian)
#### Post date: [August 31, 2021, 2:01pm UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/3 "2021-08-31T14:01:38Z")

</div>

Ah so if, for example, I set `ENABLE_mpi=ON` in the superbuild it will download and compile mpich instead of using the system MPI that’s already there?

---

<div class="post-metadata">

### Author: ![utkarsh.ayachit](https://discourse.paraview.org/user_avatar/discourse.paraview.org/utkarsh.ayachit/32/39_2.png) [@utkarsh.ayachit](https://discourse.paraview.org/u/utkarsh.ayachit)
#### Post date: [August 31, 2021, 2:17pm UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/4 "2021-08-31T14:17:16Z")

</div>

> [@bastian](#):
>
> I set `ENABLE_mpi=ON` in the superbuild it will download and compile mpich instead of using the system MPI that’s already there?

Yes. Unless you set [USE\_SYSTEM\_xxx](https://gitlab.kitware.com/paraview/paraview-superbuild/#build-variables) to ON.

---

<div class="post-metadata">

### Author: ![bastian](https://discourse.paraview.org/user_avatar/discourse.paraview.org/bastian/32/7513_2.png) [@bastian](https://discourse.paraview.org/u/bastian)
#### Post date: [August 31, 2021, 2:32pm UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/5 "2021-08-31T14:32:31Z")

</div>

Ah thank you, that makes sense now.  
But then how can I customize the Paraview build itself when building through superbuild? Do, by chance, get any `-DPARAVIEW_ENABLE_....=ON` flags applied to superbuild used for building Paraview?

---

<div class="post-metadata">

### Author: ![utkarsh.ayachit](https://discourse.paraview.org/user_avatar/discourse.paraview.org/utkarsh.ayachit/32/39_2.png) [@utkarsh.ayachit](https://discourse.paraview.org/u/utkarsh.ayachit)
#### Post date: [August 31, 2021, 2:40pm UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/6 "2021-08-31T14:40:54Z")

</div>

defer to @ben.boeckel , @cory.quammen for that one.

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [September 1, 2021, 2:36am UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/7 "2021-09-01T02:36:14Z")

</div>

> [@bastian](#):
>
> But then how can I customize the Paraview build itself when building through superbuild?

The superbuild will control what it can (e.g., it knows that it built ffmpeg and will therefore tell paraview about it). Same with any other projects which affect it (see the `DEPENDS_OPTIONAL` list). Basically, if the option you want to set is mentioned in `projects/paraview.cmake`, work _with_ the superbuild to manipulate that flag.

For anything else, there is the superbuild’s `PARAVIEW_EXTRA_CMAKE_ARGUMENTS` variable (visible in the advanced view) which allows you to pass other `cmake` flags (`;`-separated) to ParaView’s configuration.

---

<div class="post-metadata">

### Author: ![bastian](https://discourse.paraview.org/user_avatar/discourse.paraview.org/bastian/32/7513_2.png) [@bastian](https://discourse.paraview.org/u/bastian)
#### Post date: [September 3, 2021, 8:42am UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/8 "2021-09-03T08:42:27Z")

</div>

> [@ben.boeckel](#):
>
> For anything else, there is the superbuild’s `PARAVIEW_EXTRA_CMAKE_ARGUMENTS` variable (visible in the advanced view) which allows you to pass other `cmake` flags (`;`-separated) to ParaView’s configuration.

Thank you for your elaborate answer which was really helpful.

How about non-cmake flags, like `-DEGL_INCLUDE_DIR` … will they be applied in the building of Paraview? For example:

```plaintext
cmake -GNinja \
-DEGL_INCLUDE_DIR=/usr/include \
-DEGL_LIBRARY=/usr/lib64/libEGL.so \
-DEGL_opengl_LIBRARY=/usr/lib64/libOpenGL.so \
../paraview-superbuild/

```

---

<div class="post-metadata">

### Author: ![bastian](https://discourse.paraview.org/user_avatar/discourse.paraview.org/bastian/32/7513_2.png) [@bastian](https://discourse.paraview.org/u/bastian)
#### Post date: [September 3, 2021, 8:55am UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/9 "2021-09-03T08:55:25Z")

</div>

> [@bastian](#):
>
> How about non-cmake flags, like `-DEGL_INCLUDE_DIR` … will they be applied in the building of Paraview? For example:
> 
> ```plaintext
> cmake -GNinja \
> -DEGL_INCLUDE_DIR=/usr/include \
> -DEGL_LIBRARY=/usr/lib64/libEGL.so \
> -DEGL_opengl_LIBRARY=/usr/lib64/libOpenGL.so \
> ../paraview-superbuild/
> 
> ```

Okay, probably so, becuase  
`superbuild/paraview/build/CMakeCache.txt`  
then has the lines

```plaintext
EGL_INCLUDE_DIR:PATH=/usr/include
EGL_LIBRARY:FILEPATH=/usr/lib64/libEGL.so
EGL_opengl_LIBRARY:FILEPATH=/usr/lib64/libOpenGL.so

```

in it.

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [September 4, 2021, 4:58pm UTC](https://discourse.paraview.org/t/paraview-build-edition-has-no-impact-on-ccmake-list/7897/10 "2021-09-04T16:58:26Z")

</div>

They aren’t passed directly; I suspect it is just ParaView finding the same paths that you passed in on its own. You can see all of the flags passed to ParaView’s configure in `superbuild/sb-paraview-configure.cmake`.
