Example #1
0
def test_cmake_find_package_multi_links_flags():
    # https://github.com/conan-io/conan/issues/8703
    conanfile = ConanFile(Mock(), None)
    conanfile.settings = "os", "compiler", "build_type", "arch"
    conanfile.initialize(
        Settings({
            "os": ["Windows"],
            "compiler": ["gcc"],
            "build_type": ["Release"],
            "arch": ["x86"]
        }), EnvValues())
    conanfile.settings.build_type = "Release"
    conanfile.settings.arch = "x86"

    cpp_info = CppInfo("mypkg", "dummy_root_folder1")
    cpp_info.sharedlinkflags = ["/NODEFAULTLIB", "/OTHERFLAG"]
    cpp_info.exelinkflags = ["/OPT:NOICF"]
    conanfile.deps_cpp_info.add("mypkg", cpp_info)

    gen = CMakeFindPackageMultiGenerator(conanfile)
    files = gen.content
    d = files["mypkgTarget-release.cmake"]
    assert "$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:-OPT:NOICF>" in d
    assert "$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:-NODEFAULTLIB;-OTHERFLAG>" in d
    assert "$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:-NODEFAULTLIB;-OTHERFLAG>" in d
Example #2
0
 def test_cmake_find_package_multi(self):
     generator = CMakeFindPackageMultiGenerator(self.conanfile)
     content = generator.content
     six.assertCountEqual(self, [
         'MyCMakeFindPackageMultiName2Targets.cmake',
         'MyCMakeFindPackageMultiNameConfig.cmake',
         'MyCMakeFindPackageMultiName2Config.cmake',
         'MyCMakeFindPackageMultiNameTargets.cmake',
         'MyCMakeFindPackageMultiNameTarget-debug.cmake',
         'MyCMakeFindPackageMultiName2Target-debug.cmake',
         'MyCMakeFindPackageMultiNameConfigVersion.cmake',
         'MyCMakeFindPackageMultiName2ConfigVersion.cmake'
     ], content.keys())
     self.assertNotIn("MyPkG",
                      content["MyCMakeFindPackageMultiNameConfig.cmake"])
     self.assertNotIn("MyPkG",
                      content["MyCMakeFindPackageMultiName2Config.cmake"])
     self.assertIn(
         "add_library(MyCMakeFindPackageMultiName::MyCMakeFindPackageMultiName INTERFACE IMPORTED)",
         content["MyCMakeFindPackageMultiNameTargets.cmake"])
     self.assertIn(
         "add_library(MyCMakeFindPackageMultiName2::MyCMakeFindPackageMultiName2 INTERFACE IMPORTED)",
         content["MyCMakeFindPackageMultiName2Targets.cmake"])
     self.assertIn(
         "find_dependency(MyCMakeFindPackageMultiName REQUIRED NO_MODULE)",
         content["MyCMakeFindPackageMultiName2Config.cmake"])
Example #3
0
 def cmake_find_package_multi_test(self):
     generator = CMakeFindPackageMultiGenerator(self.conanfile)
     content = generator.content
     self.assertNotIn("not-a-cmake-module.pc", content["my_pkg2Target-release.cmake"])
     self.assertIn('set(my_pkg_BUILD_MODULES_PATHS_RELEASE "dummy_root_folder1/my-module.cmake")',
                   content["my_pkgTarget-release.cmake"])
     self.assertIn('set(my_pkg2_BUILD_MODULES_PATHS_RELEASE "dummy_root_folder2/other-mod.cmake")',
                   content["my_pkg2Target-release.cmake"])
    def cmake_find_package_multi_version_test(self):
        # https://github.com/conan-io/conan/issues/6908
        settings_mock = _MockSettings(build_type="Debug")
        conanfile = ConanFile(TestBufferConanOutput(), None)
        conanfile.initialize(settings_mock, EnvValues())
        ref = ConanFileReference.loads("my_pkg/0.1@user/stable")
        cpp_info = CppInfo(ref.name, "")
        cpp_info.version = ref.version
        cpp_info.debug.libs = ["mylib"]
        conanfile.deps_cpp_info.add(ref.name, cpp_info)

        generator = CMakeFindPackageMultiGenerator(conanfile)
        content = generator.content
        config_version = content["my_pkgConfigVersion.cmake"]
        self.assertIn('set(PACKAGE_VERSION "0.1")', config_version)
Example #5
0
 def cmake_find_package_multi_test(self):
     generator = CMakeFindPackageMultiGenerator(self.conanfile)
     content = generator.content
     six.assertCountEqual(self, ['MyPkG2Targets.cmake', 'MyPkGConfig.cmake', 'MyPkG2Config.cmake',
                                 'MyPkGTargets.cmake', 'MyPkGTarget-debug.cmake',
                                 'MyPkG2Target-debug.cmake'], content.keys())
     self.assertNotIn("my_pkg", content["MyPkGConfig.cmake"])
     self.assertNotIn("MY_PKG", content["MyPkGConfig.cmake"])
     self.assertNotIn("my_pkg", content["MyPkG2Config.cmake"])
     self.assertNotIn("MY_PKG", content["MyPkG2Config.cmake"])
     self.assertIn("add_library(MyPkG::MyPkG INTERFACE IMPORTED)",
                   content["MyPkGTargets.cmake"])
     self.assertIn("add_library(MyPkG2::MyPkG2 INTERFACE IMPORTED)",
                   content["MyPkG2Targets.cmake"])
     self.assertIn("find_dependency(MyPkG REQUIRED NO_MODULE)", content["MyPkG2Config.cmake"])