Skip to content

Commit

Permalink
feat: add verbose setting (#87)
Browse files Browse the repository at this point in the history
Adding a verbosity setting.

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
  • Loading branch information
henryiii committed Nov 16, 2022
1 parent 8e1ab06 commit ab10482
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 7 deletions.
3 changes: 1 addition & 2 deletions src/scikit_build_core/builder/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,7 @@ def configure(
)

def build(self, build_args: list[str]) -> None:
# TODO: configure verbose
self.config.build(build_args=build_args, verbose=1)
self.config.build(build_args=build_args, verbose=self.settings.cmake.verbose)

def install(self, install_dir: Path) -> None:
self.config.install(install_dir)
6 changes: 3 additions & 3 deletions src/scikit_build_core/cmake.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,15 +149,15 @@ def configure(
def _compute_build_args(
self,
*,
verbose: int,
verbose: bool,
) -> Generator[str, None, None]:
for _ in range(verbose):
if verbose:
yield "-v"
if not self.single_config:
yield "--config"
yield self.build_type

def build(self, build_args: Sequence[str] = (), *, verbose: int = 0) -> None:
def build(self, build_args: Sequence[str] = (), *, verbose: bool = False) -> None:
local_args = self._compute_build_args(verbose=verbose)

try:
Expand Down
5 changes: 4 additions & 1 deletion src/scikit_build_core/settings/skbuild_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,12 @@ class CMakeSettings:
#: A list of args to pass to CMake when configuring the project.
args: List[str] = dataclasses.field(default_factory=list)

# A table of defines to pass to CMake when configuring the project. Additive.
#: A table of defines to pass to CMake when configuring the project. Additive.
define: Dict[str, str] = dataclasses.field(default_factory=dict)

#: Verbose printout when building
verbose: bool = False


@dataclasses.dataclass
class LoggingSettings:
Expand Down
8 changes: 7 additions & 1 deletion tests/test_skbuild_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ def test_skbuild_settings_default(tmp_path):
assert settings.cmake.minimum_version == "3.15"
assert settings.cmake.args == []
assert settings.cmake.define == {}
assert not settings.cmake.verbose
assert settings.logging.level == "WARNING"
assert settings.sdist.include == []
assert settings.sdist.exclude == []
Expand Down Expand Up @@ -55,6 +56,7 @@ def test_skbuild_settings_envvar(tmp_path, monkeypatch):
monkeypatch.setenv("SKBUILD_STRICT_CONFIG", "0")
monkeypatch.setenv("SKBUILD_EXPERIMENTAL", "1")
monkeypatch.setenv("SKBUILD_MINIMUM_VERSION", "0.1")
monkeypatch.setenv("SKBUILD_CMAKE_VERBOSE", "TRUE")

pyproject_toml = tmp_path / "pyproject.toml"
pyproject_toml.write_text("", encoding="utf-8")
Expand All @@ -69,6 +71,7 @@ def test_skbuild_settings_envvar(tmp_path, monkeypatch):
assert settings.cmake.minimum_version == "3.16"
assert settings.cmake.args == ["-DFOO=BAR", "-DBAR=FOO"]
assert settings.cmake.define == {"a": "1", "b": "2"}
assert settings.cmake.verbose
assert not settings.ninja.make_fallback
assert settings.logging.level == "DEBUG"
assert settings.sdist.include == ["a", "b", "c"]
Expand All @@ -83,7 +86,6 @@ def test_skbuild_settings_envvar(tmp_path, monkeypatch):


def test_skbuild_settings_config_settings(tmp_path, monkeypatch):

monkeypatch.setattr(
scikit_build_core.settings.skbuild_read_settings, "__version__", "0.1.0"
)
Expand All @@ -98,6 +100,7 @@ def test_skbuild_settings_config_settings(tmp_path, monkeypatch):
"cmake.args": ["-DFOO=BAR", "-DBAR=FOO"],
"cmake.define.a": "1",
"cmake.define.b": "2",
"cmake.verbose": "true",
"logging.level": "INFO",
"sdist.include": ["a", "b", "c"],
"sdist.exclude": "d;e;f",
Expand All @@ -119,6 +122,7 @@ def test_skbuild_settings_config_settings(tmp_path, monkeypatch):
assert settings.cmake.minimum_version == "3.17"
assert settings.cmake.args == ["-DFOO=BAR", "-DBAR=FOO"]
assert settings.cmake.define == {"a": "1", "b": "2"}
assert settings.cmake.verbose
assert settings.logging.level == "INFO"
assert settings.sdist.include == ["a", "b", "c"]
assert settings.sdist.exclude == ["d", "e", "f"]
Expand All @@ -145,6 +149,7 @@ def test_skbuild_settings_pyproject_toml(tmp_path, monkeypatch):
cmake.minimum-version = "3.18"
cmake.args = ["-DFOO=BAR", "-DBAR=FOO"]
cmake.define = {a = "1", b = "2"}
cmake.verbose = true
logging.level = "ERROR"
sdist.include = ["a", "b", "c"]
sdist.exclude = ["d", "e", "f"]
Expand All @@ -171,6 +176,7 @@ def test_skbuild_settings_pyproject_toml(tmp_path, monkeypatch):
assert settings.cmake.minimum_version == "3.18"
assert settings.cmake.args == ["-DFOO=BAR", "-DBAR=FOO"]
assert settings.cmake.define == {"a": "1", "b": "2"}
assert settings.cmake.verbose
assert settings.logging.level == "ERROR"
assert settings.sdist.include == ["a", "b", "c"]
assert settings.sdist.exclude == ["d", "e", "f"]
Expand Down

0 comments on commit ab10482

Please sign in to comment.