Esempio n. 1
0
 def cpp_info_name_cmake_find_package_test(self):
     """
     Test cpp_info.names values are applied instead of the reference name
     """
     conanfile = ConanFile(TestBufferConanOutput(), None)
     conanfile.initialize(Settings({}), EnvValues())
     ref = ConanFileReference.loads("my_pkg/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder1")
     cpp_info.name = "MyPkG"
     conanfile.deps_cpp_info.update(cpp_info, ref.name)
     ref = ConanFileReference.loads("my_pkg2/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder2")
     cpp_info.name = "MyPkG2"
     conanfile.deps_cpp_info.update(cpp_info, ref.name)
     generator = CMakeFindPackageGenerator(conanfile)
     content = generator.content
     self.assertIn("FindMyPkG.cmake", content.keys())
     self.assertIn("FindMyPkG2.cmake", content.keys())
     self.assertNotIn("my_pkg", content["FindMyPkG.cmake"])
     self.assertNotIn("MY_PKG", content["FindMyPkG.cmake"])
     self.assertNotIn("my_pkg", content["FindMyPkG2.cmake"])
     self.assertNotIn("MY_PKG", content["FindMyPkG2.cmake"])
     self.assertIn("add_library(MyPkG::MyPkG INTERFACE IMPORTED)",
                   content["FindMyPkG.cmake"])
     self.assertIn("add_library(MyPkG2::MyPkG2 INTERFACE IMPORTED)",
                   content["FindMyPkG2.cmake"])
Esempio n. 2
0
    def variables_setup_test(self):
        conanfile = ConanFile(TestBufferConanOutput(), None)
        conanfile.initialize(Settings({}), EnvValues())
        ref = ConanFileReference.loads("MyPkg/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder1")
        cpp_info.name = ref.name
        cpp_info.defines = ["MYDEFINE1"]
        conanfile.deps_cpp_info.update(cpp_info, ref.name)
        ref = ConanFileReference.loads("MyPkg2/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder2")
        cpp_info.name = ref.name
        cpp_info.defines = ["MYDEFINE2"]
        conanfile.deps_cpp_info.update(cpp_info, ref.name)
        conanfile.deps_user_info["LIB1"].myvar = "myvalue"
        conanfile.deps_user_info["LIB1"].myvar2 = "myvalue2"
        conanfile.deps_user_info["lib2"].MYVAR2 = "myvalue4"
        generator = CMakeGenerator(conanfile)
        content = generator.content
        cmake_lines = content.splitlines()
        self.assertIn('set(CONAN_DEFINES_MYPKG "-DMYDEFINE1")', cmake_lines)
        self.assertIn('set(CONAN_DEFINES_MYPKG2 "-DMYDEFINE2")', cmake_lines)
        self.assertIn('set(CONAN_COMPILE_DEFINITIONS_MYPKG "MYDEFINE1")',
                      cmake_lines)
        self.assertIn('set(CONAN_COMPILE_DEFINITIONS_MYPKG2 "MYDEFINE2")',
                      cmake_lines)

        self.assertIn('set(CONAN_USER_LIB1_myvar "myvalue")', cmake_lines)
        self.assertIn('set(CONAN_USER_LIB1_myvar2 "myvalue2")', cmake_lines)
        self.assertIn('set(CONAN_USER_LIB2_MYVAR2 "myvalue4")', cmake_lines)
Esempio n. 3
0
 def multi_flag_test(self):
     conanfile = ConanFile(TestBufferConanOutput(), None)
     conanfile.initialize(Settings({}), EnvValues())
     ref = ConanFileReference.loads("MyPkg/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder1")
     cpp_info.name = ref.name
     cpp_info.includedirs.append("other_include_dir")
     cpp_info.cxxflags = [
         "-DGTEST_USE_OWN_TR1_TUPLE=1", "-DGTEST_LINKED_AS_SHARED_LIBRARY=1"
     ]
     conanfile.deps_cpp_info.update(cpp_info, ref.name)
     ref = ConanFileReference.loads("MyPkg2/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder2")
     cpp_info.name = ref.name
     cpp_info.cflags = ["-DSOMEFLAG=1"]
     conanfile.deps_cpp_info.update(cpp_info, ref.name)
     generator = CMakeGenerator(conanfile)
     content = generator.content
     cmake_lines = content.splitlines()
     self.assertIn('set(CONAN_C_FLAGS_MYPKG2 "-DSOMEFLAG=1")', cmake_lines)
     self.assertIn(
         'set(CONAN_CXX_FLAGS_MYPKG "-DGTEST_USE_OWN_TR1_TUPLE=1'
         ' -DGTEST_LINKED_AS_SHARED_LIBRARY=1")', cmake_lines)
     self.assertIn('set(CONAN_C_FLAGS "-DSOMEFLAG=1 ${CONAN_C_FLAGS}")',
                   cmake_lines)
     self.assertIn(
         'set(CONAN_CXX_FLAGS "-DGTEST_USE_OWN_TR1_TUPLE=1'
         ' -DGTEST_LINKED_AS_SHARED_LIBRARY=1 ${CONAN_CXX_FLAGS}")',
         cmake_lines)
Esempio n. 4
0
 def cpp_info_name_cmake_vars_test(self):
     """
     Test cpp_info.names values are applied instead of the reference name
     """
     conanfile = ConanFile(TestBufferConanOutput(), None)
     conanfile.initialize(Settings({}), EnvValues())
     ref = ConanFileReference.loads("my_pkg/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder1")
     cpp_info.name = "MyPkG"
     conanfile.deps_cpp_info.update(cpp_info, ref.name)
     ref = ConanFileReference.loads("my_pkg2/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder2")
     cpp_info.name = "MyPkG2"
     conanfile.deps_cpp_info.update(cpp_info, ref.name)
     generator = CMakeGenerator(conanfile)
     content = generator.content
     self.assertIn("set(CONAN_DEPENDENCIES my_pkg my_pkg2)", content)
     content = content.replace("set(CONAN_DEPENDENCIES my_pkg my_pkg2)", "")
     self.assertNotIn("my_pkg", content)
     self.assertNotIn("MY_PKG", content)
     self.assertIn('add_library(CONAN_PKG::MyPkG INTERFACE IMPORTED)',
                   content)
     self.assertIn('add_library(CONAN_PKG::MyPkG2 INTERFACE IMPORTED)',
                   content)
     self.assertNotIn('CONAN_PKG::my_pkg', content)
     self.assertNotIn('CONAN_PKG::my_pkg2', content)
Esempio n. 5
0
 def setUp(self):
     self.conanfile = ConanFile(Mock(), None)
     settings = _MockSettings(build_type="Debug")
     self.conanfile.initialize(settings, EnvValues())
     ref = ConanFileReference.loads("my_pkg/0.1@lasote/stables")
     cpp_info = CppInfo(ref.name, "dummy_root_folder1")
     cpp_info.name = "MyPkG"
     self.conanfile.deps_cpp_info.add(ref.name, cpp_info)
     ref = ConanFileReference.loads("my_pkg2/0.1@lasote/stables")
     cpp_info = CppInfo(ref.name, "dummy_root_folder2")
     cpp_info.name = "MyPkG2"
     cpp_info.public_deps = ["my_pkg"]
     self.conanfile.deps_cpp_info.add(ref.name, cpp_info)
Esempio n. 6
0
 def setUp(self):
     self.conanfile = ConanFile(TestBufferConanOutput(), None)
     settings = _MockSettings()
     settings.build_type = "Debug"
     self.conanfile.initialize(settings, EnvValues())
     ref = ConanFileReference.loads("my_pkg/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder1")
     cpp_info.name = "MyPkG"
     self.conanfile.deps_cpp_info.update(cpp_info, ref.name)
     ref = ConanFileReference.loads("my_pkg2/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder2")
     cpp_info.name = "MyPkG2"
     cpp_info.public_deps = ["my_pkg"]
     self.conanfile.deps_cpp_info.update(cpp_info, ref.name)
Esempio n. 7
0
    def apple_frameworks_test(self):
        settings = Settings.loads(default_settings_yml)
        settings.compiler = "apple-clang"
        settings.os = "Macos"
        conanfile = ConanFile(TestBufferConanOutput(), None)
        conanfile.initialize(Settings({}), EnvValues())
        conanfile.settings = settings
        ref = ConanFileReference.loads("MyPkg/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder1")
        cpp_info.name = ref.name
        cpp_info.frameworks = ['AudioUnit', 'AudioToolbox']
        cpp_info.version = "1.3"
        cpp_info.description = "My cool description"
        conanfile.deps_cpp_info.update(cpp_info, ref.name)

        generator = PkgConfigGenerator(conanfile)
        files = generator.content

        self.assertEqual(files["MyPkg.pc"], """prefix=dummy_root_folder1
libdir=${prefix}/lib
includedir=${prefix}/include

Name: MyPkg
Description: My cool description
Version: 1.3
Libs: -L${libdir} -Wl,-rpath,"${libdir}" -framework AudioUnit -framework AudioToolbox
Cflags: -I${includedir}
""")
Esempio n. 8
0
    def apple_frameworks_test(self):
        settings = Settings.loads(default_settings_yml)
        settings.os = "Macos"
        settings.compiler = "apple-clang"
        settings.compiler.version = "9.1"
        settings.compiler.libcxx = "libc++"
        settings.arch = "x86_64"
        settings.build_type = "Debug"
        conanfile = ConanFile(TestBufferConanOutput(), None)
        conanfile.initialize(Settings({}), EnvValues())
        ref = ConanFileReference.loads("MyPkg/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder1")
        cpp_info.name = ref.name
        cpp_info.framework_paths.extend(["path/to/Frameworks1", "path/to/Frameworks2"])
        cpp_info.frameworks = ["OpenGL", "OpenCL"]
        conanfile.deps_cpp_info.update(cpp_info, ref.name)
        conanfile.settings = settings

        generator = CMakeGenerator(conanfile)
        content = generator.content
        self.assertIn('find_library(CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND NAME ${_FRAMEWORK} PATHS'
                      ' ${CONAN_FRAMEWORK_DIRS})', content)
        self.assertIn('set(CONAN_FRAMEWORK_DIRS "path/to/Frameworks1"\n\t\t\t"path/to/Frameworks2" '
                      '${CONAN_FRAMEWORK_DIRS})', content)
        self.assertIn('set(CONAN_LIBS ${CONAN_PKG_LIBS} ${CONAN_SYSTEM_LIBS} '
                      '${CONAN_FRAMEWORKS_FOUND})', content)

        generator = CMakeFindPackageGenerator(conanfile)
        content = generator.content
        content = content['FindMyPkg.cmake']
        self.assertIn('find_library(CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND NAME ${_FRAMEWORK} PATHS'
                      ' ${MyPkg_FRAMEWORK_DIRS})', content)
Esempio n. 9
0
 def cpp_info_name_test(self):
     folder = temp_folder()
     info = CppInfo(folder)
     info.name = "MyName"
     deps_cpp_info = DepsCppInfo()
     deps_cpp_info.update(info, "myname")
     self.assertIn("MyName", deps_cpp_info["myname"].name)
Esempio n. 10
0
    def cmake_vars_unit_test(self):
        settings = _MockSettings("Release")
        conanfile = ConanFile(TestBufferConanOutput(), None)
        conanfile.initialize(settings, EnvValues())
        tmp = temp_folder()
        cpp_info = CppInfo(tmp)
        cpp_info.name = "MyLib"
        custom_dir = os.path.join(tmp, "custom_build_dir")
        os.mkdir(custom_dir)
        cpp_info.builddirs.append(os.path.join(tmp, "custom_build_dir"))
        conanfile.deps_cpp_info.update(cpp_info, "MyLib")

        generator = CMakePathsGenerator(conanfile)
        path = tmp.replace('\\', '/')
        custom_dir = custom_dir.replace('\\', '/')
        cmake_lines = generator.content.replace('\\',
                                                '/').replace("\n\t\t\t",
                                                             " ").splitlines()
        self.assertEqual('set(CONAN_MYLIB_ROOT "%s")' % path, cmake_lines[0])
        self.assertEqual(
            'set(CMAKE_MODULE_PATH "%s/" "%s" ${CMAKE_MODULE_PATH} '
            '${CMAKE_CURRENT_LIST_DIR})' % (path, custom_dir), cmake_lines[1])
        self.assertEqual(
            'set(CMAKE_PREFIX_PATH "%s/" "%s" ${CMAKE_PREFIX_PATH} '
            '${CMAKE_CURRENT_LIST_DIR})' % (path, custom_dir), cmake_lines[2])
Esempio n. 11
0
    def variables_setup_test(self):
        conanfile = ConanFile(TestBufferConanOutput(), None)
        conanfile.initialize(Settings({}), EnvValues())
        ref = ConanFileReference.loads("MyPkg/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder1")
        cpp_info.name = "my_pkg"
        cpp_info.defines = ["MYDEFINE1"]
        cpp_info.cflags.append("-Flag1=23")
        cpp_info.version = "1.3"
        cpp_info.description = "My cool description"

        conanfile.deps_cpp_info.update(cpp_info, ref.name)
        ref = ConanFileReference.loads("MyPkg2/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder2")
        cpp_info.name = ref.name
        cpp_info.defines = ["MYDEFINE2"]
        cpp_info.version = "2.3"
        cpp_info.exelinkflags = ["-exelinkflag"]
        cpp_info.sharedlinkflags = ["-sharedlinkflag"]
        cpp_info.cxxflags = ["-cxxflag"]
        cpp_info.public_deps = ["MyPkg"]
        conanfile.deps_cpp_info.update(cpp_info, ref.name)
        generator = PkgConfigGenerator(conanfile)
        files = generator.content

        self.assertEqual(files["MyPkg2.pc"], """prefix=dummy_root_folder2
libdir=${prefix}/lib
includedir=${prefix}/include

Name: MyPkg2
Description: Conan package: MyPkg2
Version: 2.3
Libs: -L${libdir} -sharedlinkflag -exelinkflag
Cflags: -I${includedir} -cxxflag -DMYDEFINE2
Requires: MyPkg
""")

        self.assertEqual(files["my_pkg.pc"], """prefix=dummy_root_folder1
libdir=${prefix}/lib
includedir=${prefix}/include

Name: my_pkg
Description: My cool description
Version: 1.3
Libs: -L${libdir}
Cflags: -I${includedir} -Flag1=23 -DMYDEFINE1
""")
Esempio n. 12
0
 def setUp(self):
     settings_mock = _MockSettings(build_type="Release")
     self.conanfile = ConanFile(TestBufferConanOutput(), None)
     self.conanfile.initialize(settings_mock, EnvValues())
     ref = ConanFileReference.loads("my_pkg/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder1")
     cpp_info.filter_empty = False  # For testing purposes only
     cpp_info.name = ref.name
     cpp_info.build_modules = ["my-module.cmake"]
     self.conanfile.deps_cpp_info.update(cpp_info, ref.name)
     ref = ConanFileReference.loads("my_pkg2/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder2")
     cpp_info.filter_empty = False  # For testing purposes only
     cpp_info.name = ref.name
     cpp_info.build_modules = ["other-mod.cmake", "not-a-cmake-module.pc"]
     cpp_info.release.build_modules = ["release-mod.cmake"]
     self.conanfile.deps_cpp_info.update(cpp_info, ref.name)
Esempio n. 13
0
 def cpp_info_name_test(self):
     folder = temp_folder()
     info = CppInfo("myname", folder)
     info.name = "MyName"
     info.names["my_generator"] = "MyNameForMyGenerator"
     deps_cpp_info = DepsCppInfo()
     deps_cpp_info.add("myname", DepCppInfo(info))
     self.assertIn("MyName", deps_cpp_info["myname"].get_name("my_undefined_generator"))
     self.assertIn("MyNameForMyGenerator", deps_cpp_info["myname"].get_name("my_generator"))
Esempio n. 14
0
    def cppinfo_components_dirs_test(self):
        folder = temp_folder()
        info = CppInfo(folder)
        info.name = "OpenSSL"
        info.components["OpenSSL"].includedirs = ["include"]
        info.components["OpenSSL"].libdirs = ["lib"]
        info.components["OpenSSL"].builddirs = ["build"]
        info.components["OpenSSL"].bindirs = ["bin"]
        info.components["OpenSSL"].resdirs = ["res"]
        info.components["Crypto"].includedirs = ["headers"]
        info.components["Crypto"].libdirs = ["libraries"]
        info.components["Crypto"].builddirs = ["build_scripts"]
        info.components["Crypto"].bindirs = ["binaries"]
        info.components["Crypto"].resdirs = ["resources"]
        self.assertEqual(["include"], info.components["OpenSSL"].includedirs)
        self.assertEqual(["lib"], info.components["OpenSSL"].libdirs)
        self.assertEqual(["build"], info.components["OpenSSL"].builddirs)
        self.assertEqual(["bin"], info.components["OpenSSL"].bindirs)
        self.assertEqual(["res"], info.components["OpenSSL"].resdirs)
        self.assertEqual(["headers"], info.components["Crypto"].includedirs)
        self.assertEqual(["libraries"], info.components["Crypto"].libdirs)
        self.assertEqual(["build_scripts"], info.components["Crypto"].builddirs)
        self.assertEqual(["binaries"], info.components["Crypto"].bindirs)
        self.assertEqual(["resources"], info.components["Crypto"].resdirs)

        info.components["Crypto"].includedirs = ["different_include"]
        info.components["Crypto"].libdirs = ["different_lib"]
        info.components["Crypto"].builddirs = ["different_build"]
        info.components["Crypto"].bindirs = ["different_bin"]
        info.components["Crypto"].resdirs = ["different_res"]
        self.assertEqual(["different_include"], info.components["Crypto"].includedirs)
        self.assertEqual(["different_lib"], info.components["Crypto"].libdirs)
        self.assertEqual(["different_build"], info.components["Crypto"].builddirs)
        self.assertEqual(["different_bin"], info.components["Crypto"].bindirs)
        self.assertEqual(["different_res"], info.components["Crypto"].resdirs)

        info.components["Crypto"].includedirs.extend(["another_include"])
        info.components["Crypto"].includedirs.append("another_other_include")
        info.components["Crypto"].libdirs.extend(["another_lib"])
        info.components["Crypto"].libdirs.append("another_other_lib")
        info.components["Crypto"].builddirs.extend(["another_build"])
        info.components["Crypto"].builddirs.append("another_other_build")
        info.components["Crypto"].bindirs.extend(["another_bin"])
        info.components["Crypto"].bindirs.append("another_other_bin")
        info.components["Crypto"].resdirs.extend(["another_res"])
        info.components["Crypto"].resdirs.append("another_other_res")
        self.assertEqual(["different_include", "another_include", "another_other_include"],
                         info.components["Crypto"].includedirs)
        self.assertEqual(["different_lib", "another_lib", "another_other_lib"],
                         info.components["Crypto"].libdirs)
        self.assertEqual(["different_build", "another_build", "another_other_build"],
                         info.components["Crypto"].builddirs)
        self.assertEqual(["different_bin", "another_bin", "another_other_bin"],
                         info.components["Crypto"].bindirs)
        self.assertEqual(["different_res", "another_res", "another_other_res"],
                         info.components["Crypto"].resdirs)
Esempio n. 15
0
 def test_cpp_info_name(self):
     settings = _MockSettings("Release")
     conanfile = ConanFile(Mock(), None)
     conanfile.initialize(settings, EnvValues())
     tmp = temp_folder()
     cpp_info = CppInfo("pkg_reference_name", tmp)
     cpp_info.name = "PkgCMakeName"
     conanfile.deps_cpp_info.add("pkg_reference_name", cpp_info)
     generator = CMakePathsGenerator(conanfile)
     self.assertIn('set(CONAN_PKGCMAKENAME_ROOT', generator.content)
Esempio n. 16
0
 def cpp_info_name_test(self):
     settings = _MockSettings("Release")
     conanfile = ConanFile(TestBufferConanOutput(), None)
     conanfile.initialize(settings, EnvValues())
     tmp = temp_folder()
     cpp_info = CppInfo(tmp)
     cpp_info.name = "PkgCMakeName"
     conanfile.deps_cpp_info.update(cpp_info, "pkg_reference_name")
     generator = CMakePathsGenerator(conanfile)
     self.assertIn('set(CONAN_PKGCMAKENAME_ROOT', generator.content)
Esempio n. 17
0
 def cpp_info_names_test(self):
     settings = _MockSettings("Release")
     conanfile = ConanFile(TestBufferConanOutput(), None)
     conanfile.initialize(settings, EnvValues())
     tmp = temp_folder()
     cpp_info = CppInfo("pkg_reference_name", tmp)
     cpp_info.name = "PkgCMakeName"
     cpp_info.names["cmake_paths"] = "MyCMakePathsPkgName"
     conanfile.deps_cpp_info.add("pkg_reference_name", cpp_info)
     generator = CMakePathsGenerator(conanfile)
     self.assertIn('set(CONAN_MYCMAKEPATHSPKGNAME_ROOT', generator.content)
Esempio n. 18
0
 def setUp(self):
     settings_mock = _MockSettings(build_type="Release")
     self.conanfile = ConanFile(Mock(), None)
     self.conanfile.initialize(settings_mock, EnvValues())
     ref = ConanFileReference.loads("my_pkg/0.1@lasote/stables")
     cpp_info = CppInfo(ref.name, "dummy_root_folder1")
     cpp_info.filter_empty = False  # For testing purposes only
     cpp_info.name = ref.name
     cpp_info.build_modules["cmake"] = ["my-module.cmake"]
     cpp_info.build_modules["cmake_multi"] = ["my-module.cmake"]
     cpp_info.build_modules["cmake_find_package"] = ["my-module.cmake"]
     cpp_info.build_modules["cmake_find_package_multi"] = [
         "my-module.cmake"
     ]
     self.conanfile.deps_cpp_info.add(ref.name, cpp_info)
     ref = ConanFileReference.loads("my_pkg2/0.1@lasote/stables")
     cpp_info = CppInfo(ref.name, "dummy_root_folder2")
     cpp_info.filter_empty = False  # For testing purposes only
     cpp_info.name = ref.name
     cpp_info.build_modules["cmake"] = [
         "other-mod.cmake", "not-a-cmake-module.pc"
     ]
     cpp_info.build_modules["cmake_multi"] = [
         "other-mod.cmake", "not-a-cmake-module.pc"
     ]
     cpp_info.build_modules["cmake_find_package"] = [
         "other-mod.cmake", "not-a-cmake-module.pc"
     ]
     cpp_info.build_modules["cmake_find_package_multi"] = [
         "other-mod.cmake", "not-a-cmake-module.pc"
     ]
     cpp_info.release.build_modules["cmake"] = ["release-mod.cmake"]
     cpp_info.release.build_modules["cmake_multi"] = ["release-mod.cmake"]
     cpp_info.release.build_modules["cmake_find_package"] = [
         "release-mod.cmake"
     ]
     cpp_info.release.build_modules["cmake_find_package_multi"] = [
         "release-mod.cmake"
     ]
     self.conanfile.deps_cpp_info.add(ref.name, cpp_info)
Esempio n. 19
0
 def setUp(self):
     self.conanfile = ConanFile(TestBufferConanOutput(), None)
     settings = _MockSettings()
     settings.build_type = "Debug"
     self.conanfile.initialize(settings, EnvValues())
     ref = ConanFileReference.loads("my_pkg/0.1@lasote/stables")
     cpp_info = CppInfo(ref.name, "dummy_root_folder1")
     cpp_info.name = "MyPkG"
     cpp_info.names["cmake"] = "MyCMakeName"
     cpp_info.names["cmake_multi"] = "MyCMakeMultiName"
     cpp_info.names["cmake_find_package"] = "MyCMakeFindPackageName"
     cpp_info.names["cmake_find_package_multi"] = "MyCMakeFindPackageMultiName"
     self.conanfile.deps_cpp_info.add(ref.name, cpp_info)
     ref = ConanFileReference.loads("my_pkg2/0.1@lasote/stables")
     cpp_info = CppInfo(ref.name, "dummy_root_folder2")
     cpp_info.name = "MyPkG2"
     cpp_info.names["cmake"] = "MyCMakeName2"
     cpp_info.names["cmake_multi"] = "MyCMakeMultiName2"
     cpp_info.names["cmake_find_package"] = "MyCMakeFindPackageName2"
     cpp_info.names["cmake_find_package_multi"] = "MyCMakeFindPackageMultiName2"
     cpp_info.public_deps = ["my_pkg"]
     self.conanfile.deps_cpp_info.add(ref.name, cpp_info)
    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("")
        cpp_info.name = ref.name
        cpp_info.version = ref.version
        cpp_info.debug.libs = ["mylib"]
        conanfile.deps_cpp_info.update(cpp_info, ref.name)

        generator = CMakeFindPackageMultiGenerator(conanfile)
        content = generator.content
        config_version = content["my_pkgConfigVersion.cmake"]
        self.assertIn('set(PACKAGE_VERSION "0.1")', config_version)
Esempio n. 21
0
    def test_names_per_generator(self):
        cpp_info = CppInfo("pkg_name", "root")
        cpp_info.name = "name"
        cpp_info.names["txt"] = "txt_name"
        cpp_info.names["cmake_find_package"] = "SpecialName"
        cpp_info.filenames["cmake_find_package"] = "SpecialFileName"
        conanfile = ConanFile(TestBufferConanOutput(), None)
        conanfile.initialize(Settings({}), EnvValues())
        conanfile.deps_cpp_info.add("pkg_name", DepCppInfo(cpp_info))
        content = TXTGenerator(conanfile).content
        parsed_deps_cpp_info, _, _, _ = TXTGenerator.loads(content, filter_empty=False)

        parsed_cpp_info = parsed_deps_cpp_info["pkg_name"]
        self.assertEqual(parsed_cpp_info.get_name("txt"), "txt_name")
        self.assertEqual(parsed_cpp_info.get_name("cmake_find_package"), "SpecialName")
        self.assertEqual(parsed_cpp_info.get_filename("cmake_find_package"), "SpecialFileName")
        self.assertEqual(parsed_cpp_info.get_name("pkg_config"), "pkg_name")
Esempio n. 22
0
 def escaped_flags_test(self):
     conanfile = ConanFile(TestBufferConanOutput(), None)
     conanfile.initialize(Settings({}), EnvValues())
     ref = ConanFileReference.loads("MyPkg/0.1@lasote/stables")
     cpp_info = CppInfo("dummy_root_folder1")
     cpp_info.name = ref.name
     cpp_info.includedirs.append("other_include_dir")
     cpp_info.cxxflags = ["-load", r"C:\foo\bar.dll"]
     cpp_info.cflags = ["-load", r"C:\foo\bar2.dll"]
     cpp_info.defines = ['MY_DEF=My string', 'MY_DEF2=My other string']
     conanfile.deps_cpp_info.update(cpp_info, ref.name)
     generator = CMakeGenerator(conanfile)
     content = generator.content
     cmake_lines = content.splitlines()
     self.assertIn(r'set(CONAN_C_FLAGS_MYPKG "-load C:\\foo\\bar2.dll")', cmake_lines)
     self.assertIn(r'set(CONAN_CXX_FLAGS_MYPKG "-load C:\\foo\\bar.dll")', cmake_lines)
     self.assertIn(r'set(CONAN_DEFINES_MYPKG "-DMY_DEF=My string"', cmake_lines)
     self.assertIn('\t\t\t"-DMY_DEF2=My other string")', cmake_lines)
Esempio n. 23
0
 def paths_cmake_multi_user_vars_test(self):
     settings_mock = _MockSettings(build_type="Release")
     conanfile = ConanFile(TestBufferConanOutput(), None)
     conanfile.initialize(settings_mock, EnvValues())
     ref = ConanFileReference.loads("MyPkg/0.1@lasote/stables")
     tmp_folder = temp_folder()
     save(os.path.join(tmp_folder, "lib", "mylib.lib"), "")
     save(os.path.join(tmp_folder, "include", "myheader.h"), "")
     cpp_info = CppInfo(tmp_folder)
     cpp_info.name = ref.name
     cpp_info.release.libs = ["hello"]
     cpp_info.debug.libs = ["hello_D"]
     conanfile.deps_cpp_info.update(cpp_info, ref.name)
     generator = CMakeMultiGenerator(conanfile)
     release = generator.content["conanbuildinfo_release.cmake"]
     release = release.replace(tmp_folder.replace("\\", "/"), "root_folder")
     cmake_lines = release.splitlines()
     self.assertIn('set(CONAN_INCLUDE_DIRS_MYPKG_RELEASE "root_folder/include")', cmake_lines)
     self.assertIn('set(CONAN_LIB_DIRS_MYPKG_RELEASE "root_folder/lib")', cmake_lines)
Esempio n. 24
0
    def pkg_config_custom_names_test(self):
        conanfile = ConanFile(TestBufferConanOutput(), None)
        conanfile.initialize(Settings({}), EnvValues())

        ref = ConanFileReference.loads("MyPkg/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder1")
        cpp_info.name = "my_pkg"
        cpp_info.names["pkg_config"] = "my_pkg_custom_name"
        cpp_info.defines = ["MYDEFINE1"]
        cpp_info.cflags.append("-Flag1=23")
        cpp_info.version = "1.3"
        cpp_info.description = "My cool description"
        conanfile.deps_cpp_info.update(cpp_info, ref.name)

        ref = ConanFileReference.loads("MyPkg1/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder1")
        cpp_info.name = "MYPKG1"
        cpp_info.names["pkg_config"] = "my_pkg1_custom_name"
        cpp_info.defines = ["MYDEFINE11"]
        cpp_info.cflags.append("-Flag1=21")
        cpp_info.version = "1.7"
        cpp_info.description = "My other cool description"
        conanfile.deps_cpp_info.update(cpp_info, ref.name)

        ref = ConanFileReference.loads("MyPkg2/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder2")
        cpp_info.name = ref.name
        cpp_info.names["pkg_config"] = "my_pkg2_custom_name"
        cpp_info.defines = ["MYDEFINE2"]
        cpp_info.version = "2.3"
        cpp_info.exelinkflags = ["-exelinkflag"]
        cpp_info.sharedlinkflags = ["-sharedlinkflag"]
        cpp_info.cxxflags = ["-cxxflag"]
        cpp_info.public_deps = ["MyPkg", "MyPkg1"]
        conanfile.deps_cpp_info.update(cpp_info, ref.name)

        ref = ConanFileReference.loads("zlib/1.2.11@lasote/stable")
        cpp_info = CppInfo("dummy_root_folder_zlib")
        cpp_info.name = "ZLIB"
        cpp_info.defines = ["MYZLIBDEFINE2"]
        cpp_info.version = "1.2.11"
        conanfile.deps_cpp_info.update(cpp_info, ref.name)

        ref = ConanFileReference.loads("bzip2/0.1@lasote/stables")
        cpp_info = CppInfo("dummy_root_folder2")
        cpp_info.name = "BZip2"
        cpp_info.names["pkg_config"] = "BZip2"
        cpp_info.defines = ["MYDEFINE2"]
        cpp_info.version = "2.3"
        cpp_info.exelinkflags = ["-exelinkflag"]
        cpp_info.sharedlinkflags = ["-sharedlinkflag"]
        cpp_info.cxxflags = ["-cxxflag"]
        cpp_info.public_deps = ["MyPkg", "MyPkg1", "zlib"]
        conanfile.deps_cpp_info.update(cpp_info, ref.name)
        generator = PkgConfigGenerator(conanfile)
        files = generator.content

        self.assertEqual(files["my_pkg2_custom_name.pc"], """prefix=dummy_root_folder2
libdir=${prefix}/lib
includedir=${prefix}/include

Name: my_pkg2_custom_name
Description: Conan package: my_pkg2_custom_name
Version: 2.3
Libs: -L${libdir} -sharedlinkflag -exelinkflag
Cflags: -I${includedir} -cxxflag -DMYDEFINE2
Requires: my_pkg_custom_name my_pkg1_custom_name
""")
        self.assertEqual(files["my_pkg1_custom_name.pc"], """prefix=dummy_root_folder1
libdir=${prefix}/lib
includedir=${prefix}/include

Name: my_pkg1_custom_name
Description: My other cool description
Version: 1.7
Libs: -L${libdir}
Cflags: -I${includedir} -Flag1=21 -DMYDEFINE11
""")
        self.assertEqual(files["my_pkg_custom_name.pc"], """prefix=dummy_root_folder1
libdir=${prefix}/lib
includedir=${prefix}/include

Name: my_pkg_custom_name
Description: My cool description
Version: 1.3
Libs: -L${libdir}
Cflags: -I${includedir} -Flag1=23 -DMYDEFINE1
""")
        self.assertEqual(files["BZip2.pc"], """prefix=dummy_root_folder2
libdir=${prefix}/lib
includedir=${prefix}/include

Name: BZip2
Description: Conan package: BZip2
Version: 2.3
Libs: -L${libdir} -sharedlinkflag -exelinkflag
Cflags: -I${includedir} -cxxflag -DMYDEFINE2
Requires: my_pkg_custom_name my_pkg1_custom_name zlib
""")
Esempio n. 25
0
    def test_variables_setup(self):
        conanfile = ConanFile(TestBufferConanOutput(), None)
        conanfile.initialize(Settings({}), EnvValues())
        ref = ConanFileReference.loads("MyPkg/0.1@lasote/stables")
        cpp_info = CppInfo(ref.name, "/dummy_root_folder1")
        cpp_info.filter_empty = False
        cpp_info.name = "my_pkg"
        cpp_info.defines = ["MYDEFINE1"]
        cpp_info.cflags.append("-Flag1=23")
        cpp_info.version = "1.3"
        cpp_info.description = "My cool description"
        conanfile.deps_cpp_info.add(ref.name, cpp_info)

        ref = ConanFileReference.loads("MyPkg1/0.1@lasote/stables")
        cpp_info = CppInfo(ref.name, "/dummy_root_folder1")
        cpp_info.filter_empty = False
        cpp_info.name = "MYPKG1"
        cpp_info.defines = ["MYDEFINE11"]
        cpp_info.cflags.append("-Flag1=21")
        cpp_info.version = "1.7"
        cpp_info.description = "My other cool description"
        cpp_info.public_deps = ["MyPkg"]
        conanfile.deps_cpp_info.add(ref.name, cpp_info)

        ref = ConanFileReference.loads("MyPkg2/0.1@lasote/stables")
        cpp_info = CppInfo(ref.name, "/dummy_root_folder2")
        cpp_info.filter_empty = False
        cpp_info.defines = ["MYDEFINE2"]
        cpp_info.version = "2.3"
        cpp_info.exelinkflags = ["-exelinkflag"]
        cpp_info.sharedlinkflags = ["-sharedlinkflag"]
        cpp_info.cxxflags = ["-cxxflag"]
        cpp_info.public_deps = ["MyPkg"]
        conanfile.deps_cpp_info.add(ref.name, cpp_info)
        generator = PkgConfigGenerator(conanfile)
        files = generator.content

        self.assertEqual(
            files["MyPkg2.pc"], """prefix=/dummy_root_folder2
libdir=${prefix}/lib
includedir=${prefix}/include

Name: MyPkg2
Description: Conan package: MyPkg2
Version: 2.3
Libs: -L"${libdir}" -sharedlinkflag -exelinkflag
Cflags: -I"${includedir}" -cxxflag -DMYDEFINE2
Requires: my_pkg
""")

        self.assertEqual(
            files["mypkg1.pc"], """prefix=/dummy_root_folder1
libdir=${prefix}/lib
includedir=${prefix}/include

Name: mypkg1
Description: My other cool description
Version: 1.7
Libs: -L"${libdir}"
Cflags: -I"${includedir}" -Flag1=21 -DMYDEFINE11
Requires: my_pkg
""")

        self.assertEqual(
            files["my_pkg.pc"], """prefix=/dummy_root_folder1
libdir=${prefix}/lib
includedir=${prefix}/include

Name: my_pkg
Description: My cool description
Version: 1.3
Libs: -L"${libdir}"
Cflags: -I"${includedir}" -Flag1=23 -DMYDEFINE1
""")