llnl / llnl/smith

Create a CMake macro to handle project specific options

Open
#1,282 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
C++
Stars
245
Forks
36
Avg merge
8d 23h
Merged PRs (30d)
4

Description

`cmake_dependent_option` just doesn't work like I always think it should so we should create our own called `serac_project_specific_option` that encapsulates the behavior we want.

For example:

* `ENABLE_BENCHMARKS` is a global BLT created option, it is used for multiple projects. Allow a user to turn that on and honor it
* Unless the project specific one is set `SERAC_ENABLE_BENCHMARKS` then honor that one.
* Always create a `SERAC_ENABLE_BENCHMARKS` because the rest of our build system is guarded on that

Contributor guide

Open the contributing guide

Research direction

Start by locating existing uses of cmake_dependent_option, ENABLE_BENCHMARKS, and SERAC_ENABLE_BENCHMARKS in the build configuration. Review how BLT options are created and consumed, then define completion as a project-specific macro that consistently applies the stated global and project-specific option behavior and always creates the SERAC option.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake
Domain
build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.