Skip to content

Commit 8305466

Browse files
authored
Add warning to CMakeDeps2 for module cmake_find_mode property (#18230)
Changelog: Omit Docs: Omit Open for a better message suggestion
2 parents b23198d + c42fd35 commit 8305466

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

conan/tools/cmake/cmakedeps2/cmakedeps.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from jinja2 import Template
66

7-
from conan.api.output import Color
7+
from conan.api.output import Color, ConanOutput
88
from conan.errors import ConanException
99
from conan.internal import check_duplicated_generator
1010
from conan.internal.api.install.generators import relativize_path
@@ -59,6 +59,12 @@ def _content(self):
5959
cmake_find_mode = cmake_find_mode.lower()
6060
if cmake_find_mode == FIND_MODE_NONE:
6161
continue
62+
if cmake_find_mode == FIND_MODE_MODULE:
63+
ConanOutput(self._conanfile.ref).warning("CMakeConfigDeps does not support "
64+
f"module find mode in {dep}.\n"
65+
f"Config mode will be used regardless.",
66+
# Should this be risk?
67+
warn_tag="deprecated")
6268

6369
if require.direct:
6470
direct_deps.append((require, dep))

test/integration/toolchains/cmake/cmakedeps2/test_cmakedeps.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import re
22
import textwrap
33

4+
import pytest
5+
46
from conan.test.assets.genconanfile import GenConanfile
57
from conan.test.utils.tools import TestClient
68

@@ -338,3 +340,22 @@ def test(self):
338340
"main/test_package/conanfile.py":test_package})
339341
c.run("create ./dependent/ --name=dependent --version=0.1 -c tools.cmake.cmakedeps:new=will_break_next")
340342
c.run("create ./main/ --name=pkg --version=0.1 -c tools.cmake.cmakedeps:new=will_break_next")
343+
344+
345+
def test_cmake_find_mode_deprecated():
346+
tc = TestClient()
347+
dep = textwrap.dedent("""
348+
from conan import ConanFile
349+
class Pkg(ConanFile):
350+
name = "dep"
351+
version = "0.1"
352+
def package_info(self):
353+
# Having both is ok as the user expects that config would
354+
# be generated nonetheless
355+
self.cpp_info.set_property("cmake_find_mode", "module")
356+
""")
357+
tc.save({"conanfile.py": dep})
358+
tc.run("create .")
359+
args = f"-g CMakeDeps -c tools.cmake.cmakedeps:new={new_value}"
360+
tc.run(f"install --requires=dep/0.1 {args}")
361+
assert "CMakeConfigDeps does not support module find mode"

0 commit comments

Comments
 (0)