示例#1
0
def test_cpp_info_name_cmakedeps_components(using_properties):
    conanfile = ConanFile(Mock(), None)
    conanfile.settings = "os", "compiler", "build_type", "arch"
    conanfile.initialize(
        Settings({
            "os": ["Windows"],
            "compiler": ["gcc"],
            "build_type": ["Release", "Debug"],
            "arch": ["x86", "x64"]
        }), EnvValues())
    conanfile.settings.build_type = "Debug"
    conanfile.settings.arch = "x64"

    cpp_info = CppInfo("mypkg", "dummy_root_folder1")
    if using_properties:
        cpp_info.set_property("cmake_target_name", "GlobakPkgName1")
        cpp_info.components["mycomp"].set_property("cmake_target_name",
                                                   "MySuperPkg1")
        cpp_info.set_property("cmake_file_name", "ComplexFileName1")
    else:
        cpp_info.names["cmake_find_package_multi"] = "GlobakPkgName1"
        cpp_info.components["mycomp"].names[
            "cmake_find_package_multi"] = "MySuperPkg1"
        cpp_info.filenames["cmake_find_package_multi"] = "ComplexFileName1"

    conanfile_dep = ConanFile(Mock(), None)
    conanfile_dep.cpp_info = cpp_info

    with mock.patch('conans.ConanFile.ref',
                    new_callable=mock.PropertyMock) as mock_ref:
        with mock.patch('conans.ConanFile.dependencies',
                        new_callable=mock.PropertyMock) as mock_deps:
            mock_ref.return_value = ConanFileReference.loads(
                "OriginalDepName/1.0")
            mock_deps.return_value = Mock()

            conanfile_dep.package_folder = "/path/to/folder_dep"
            conanfile.dependencies.transitive_host_requires = [
                ConanFileInterface(conanfile_dep)
            ]
            conanfile.dependencies.host_requires = [
                ConanFileInterface(conanfile_dep)
            ]

            cmakedeps = CMakeDeps(conanfile)
            files = cmakedeps.content
            assert "TARGET GlobakPkgName1::MySuperPkg1" in files[
                "ComplexFileName1Config.cmake"]
            assert 'set(GlobakPkgName1_INCLUDE_DIRS_DEBUG "${GlobakPkgName1_PACKAGE_FOLDER}/include")' \
                   in files["ComplexFileName1-debug-x64-data.cmake"]
            assert 'set(GlobakPkgName1_MySuperPkg1_INCLUDE_DIRS_DEBUG ' \
                   '"${GlobakPkgName1_PACKAGE_FOLDER}/include")' \
                   in files["ComplexFileName1-debug-x64-data.cmake"]
示例#2
0
def test_cpp_info_name_cmakedeps_components():
    conanfile = ConanFile(Mock(), None)
    conanfile._conan_node = Mock()
    conanfile._conan_node.context = "host"
    conanfile.settings = "os", "compiler", "build_type", "arch"
    conanfile.initialize(
        Settings({
            "os": ["Windows"],
            "compiler": ["gcc"],
            "build_type": ["Release", "Debug"],
            "arch": ["x86", "x64"]
        }), EnvValues())
    conanfile.settings.build_type = "Debug"
    conanfile.settings.arch = "x64"

    cpp_info = CppInfo("mypkg", "dummy_root_folder1")
    cpp_info.set_property("cmake_target_name",
                          "GlobakPkgName1::GlobakPkgName1")
    cpp_info.components["mycomp"].set_property("cmake_target_name",
                                               "GlobakPkgName1::MySuperPkg1")
    cpp_info.set_property("cmake_file_name", "ComplexFileName1")

    conanfile_dep = ConanFile(Mock(), None)
    conanfile_dep.cpp_info = cpp_info
    conanfile_dep._conan_node = Mock()
    conanfile_dep._conan_node.ref = ConanFileReference.loads(
        "OriginalDepName/1.0")
    conanfile_dep._conan_node.context = "host"
    conanfile_dep.folders.set_base_package("/path/to/folder_dep")

    with mock.patch('conans.ConanFile.dependencies',
                    new_callable=mock.PropertyMock) as mock_deps:
        req = Requirement(ConanFileReference.loads("OriginalDepName/1.0"))
        mock_deps.return_value = ConanFileDependencies(
            {req: ConanFileInterface(conanfile_dep)})

        cmakedeps = CMakeDeps(conanfile)
        files = cmakedeps.content
        assert "TARGET GlobakPkgName1::MySuperPkg1" in files[
            "ComplexFileName1-Target-debug.cmake"]
        assert 'set(OriginalDepName_INCLUDE_DIRS_DEBUG ' \
               '"${OriginalDepName_PACKAGE_FOLDER_DEBUG}/include")' \
               in files["ComplexFileName1-debug-x64-data.cmake"]
        assert 'set(OriginalDepName_GlobakPkgName1_MySuperPkg1_INCLUDE_DIRS_DEBUG ' \
               '"${OriginalDepName_PACKAGE_FOLDER_DEBUG}/include")' \
               in files["ComplexFileName1-debug-x64-data.cmake"]
示例#3
0
def test_cpp_info_name_cmakedeps(using_properties):
    conanfile = ConanFile(Mock(), None)
    conanfile._conan_node = Mock()
    conanfile._conan_node.context = "host"
    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")
    if using_properties:
        cpp_info.set_property("cmake_target_name", "MySuperPkg1")
        cpp_info.set_property("cmake_file_name", "ComplexFileName1")
    else:
        cpp_info.names["cmake_find_package_multi"] = "MySuperPkg1"
        cpp_info.filenames["cmake_find_package_multi"] = "ComplexFileName1"

    conanfile_dep = ConanFile(Mock(), None)
    conanfile_dep.cpp_info = cpp_info
    conanfile_dep._conan_node = Mock()
    conanfile_dep._conan_node.ref = ConanFileReference.loads(
        "OriginalDepName/1.0")
    conanfile_dep._conan_node.context = "host"
    conanfile_dep.package_folder = "/path/to/folder_dep"

    with mock.patch('conans.ConanFile.dependencies',
                    new_callable=mock.PropertyMock) as mock_deps:
        req = Requirement(ConanFileReference.loads("OriginalDepName/1.0"))
        mock_deps.return_value = ConanFileDependencies(
            {req: ConanFileInterface(conanfile_dep)})

        cmakedeps = CMakeDeps(conanfile)
        files = cmakedeps.content
        assert "TARGET MySuperPkg1::MySuperPkg1" in files[
            "ComplexFileName1-Target-release.cmake"]
        assert 'set(OriginalDepName_INCLUDE_DIRS_RELEASE ' \
               '"${OriginalDepName_PACKAGE_FOLDER_RELEASE}/include")' \
               in files["ComplexFileName1-release-x86-data.cmake"]