# Enabling options on CI

**URL:** https://discourse.vtk.org/t/enabling-options-on-ci/16484
**Category:** Development
**Created:** [July 15, 2026, 3:00pm UTC](https://discourse.vtk.org/t/enabling-options-on-ci/16484 "2026-07-15T15:00:34Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.vtk.org/user_avatar/discourse.vtk.org/cory.quammen/32/6751_2.png) [@cory.quammen](https://discourse.vtk.org/u/cory.quammen)
#### Post date: [July 15, 2026, 3:00pm UTC](https://discourse.vtk.org/t/enabling-options-on-ci/16484/1 "2026-07-15T15:00:34Z")

</div>

I am trying to enable the VTK::IOUSD module in a CI build, namely `fedora42_x86_64_mpi_python_qt_tbb.cmake`, copied here for reference with my changes:

```auto
set(VTK_USE_EXTERNAL ON CACHE STRING "")

# These libraries are not supported right now.
set(VTK_MODULE_USE_EXTERNAL_VTK_exprtk OFF CACHE BOOL "")
set(VTK_MODULE_USE_EXTERNAL_VTK_ioss OFF CACHE BOOL "")
set(VTK_MODULE_USE_EXTERNAL_VTK_fast_float OFF CACHE BOOL "")
set(VTK_MODULE_USE_EXTERNAL_VTK_fides OFF CACHE BOOL "")
set(VTK_MODULE_USE_EXTERNAL_VTK_fmt OFF CACHE BOOL "")
set(VTK_MODULE_USE_EXTERNAL_VTK_libharu OFF CACHE BOOL "")
set(VTK_MODULE_USE_EXTERNAL_VTK_scn OFF CACHE BOOL "")
set(VTK_MODULE_USE_EXTERNAL_VTK_token OFF CACHE BOOL "")
set(VTK_MODULE_USE_EXTERNAL_VTK_verdict OFF CACHE BOOL "")
set(VTK_MODULE_USE_EXTERNAL_VTK_vtkviskores OFF CACHE BOOL "")

include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora42.cmake")

# Enable USD
set(VTK_MODULE_ENABLE_VTK_IOUSD YES CACHE STRING "") # openusd

```

The last two lines are what I added. Link to MR: [https://gitlab.kitware.com/vtk/vtk/-/merge\_requests/13457](https://gitlab.kitware.com/vtk/vtk/-/merge_requests/13457).

This doesn’t seem to work as the resulting CMakeCache.txt on the CI has `VTK_MODULE_ENABLE_VTK_IOUSD` set to `NO` even though I think I’ve set it to `YES`.

`VTK_MODULE_ENABLE_VTK_IOUSD` is set to `NO` in `configure_fedora42.cmake`, but that should be undone by my setting it to `YES` after `configure_fedora42.cmake` is included, right? Or am I misunderstanding how `include` works in CMake?

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.vtk.org/user_avatar/discourse.vtk.org/cory.quammen/32/6751_2.png) [@cory.quammen](https://discourse.vtk.org/u/cory.quammen)
#### Post date: [July 15, 2026, 3:16pm UTC](https://discourse.vtk.org/t/enabling-options-on-ci/16484/2 "2026-07-15T15:16:32Z")

</div>

Ah, it looks like `set()`'s behavior with the `CACHE` argument is first-set-wins, unless `FORCE` is used. That clears up the structure of the various `configure_` files for me.
