From 4676d3b66a9a304949f9aa8c174f1eab334263d3 Mon Sep 17 00:00:00 2001 From: czoido Date: Tue, 30 Jun 2020 18:34:43 +0200 Subject: [PATCH 1/3] update to 1.27.0 --- conans/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conans/__init__.py b/conans/__init__.py index 94476bb9ed7..cbdd2664670 100644 --- a/conans/__init__.py +++ b/conans/__init__.py @@ -22,4 +22,4 @@ SERVER_CAPABILITIES = [COMPLEX_SEARCH_CAPABILITY, REVISIONS] # Server is always with revisions DEFAULT_REVISION_V1 = "0" -__version__ = '1.27.0-dev' +__version__ = '1.27.0' From 20472c34b655b3d915b89ca713a417d55d26dd50 Mon Sep 17 00:00:00 2001 From: "Javier G. Sogo" Date: Thu, 9 Jul 2020 15:55:51 +0200 Subject: [PATCH 2/3] Add (recover) quotes around link flags (#7322) * we need to recover the quotes around flags * touch * test frameworks work * reorder imports --- .../client/generators/cmake_find_package.py | 6 +- .../generators/cmake_find_package_common.py | 6 +- .../generators/cmake_apple_frameworks_test.py | 102 +++++++++++++++++- 3 files changed, 105 insertions(+), 9 deletions(-) diff --git a/conans/client/generators/cmake_find_package.py b/conans/client/generators/cmake_find_package.py index cc313f75e8d..9382624698d 100644 --- a/conans/client/generators/cmake_find_package.py +++ b/conans/client/generators/cmake_find_package.py @@ -104,9 +104,9 @@ class CMakeFindPackageGenerator(Generator): set({{ pkg_name }}_{{ comp_name }}_BUILD_MODULES_PATHS {{ comp.build_modules_paths }}) set({{ pkg_name }}_{{ comp_name }}_DEPENDENCIES {{ comp.public_deps }}) set({{ pkg_name }}_{{ comp_name }}_LINKER_FLAGS_LIST - $<$,SHARED_LIBRARY>:{{ comp.sharedlinkflags_list }}> - $<$,MODULE_LIBRARY>:{{ comp.sharedlinkflags_list }}> - $<$,EXECUTABLE>:{{ comp.exelinkflags_list }}> + "$<$,SHARED_LIBRARY>:{{ comp.sharedlinkflags_list }}>" + "$<$,MODULE_LIBRARY>:{{ comp.sharedlinkflags_list }}>" + "$<$,EXECUTABLE>:{{ comp.exelinkflags_list }}>" ) {%- endfor %} diff --git a/conans/client/generators/cmake_find_package_common.py b/conans/client/generators/cmake_find_package_common.py index acf7a998393..e0e79057447 100644 --- a/conans/client/generators/cmake_find_package_common.py +++ b/conans/client/generators/cmake_find_package_common.py @@ -9,9 +9,9 @@ set({name}_RES_DIRS{build_type_suffix} {deps.res_paths}) set({name}_DEFINITIONS{build_type_suffix} {deps.defines}) set({name}_LINKER_FLAGS{build_type_suffix}_LIST - $<$,SHARED_LIBRARY>:{deps.sharedlinkflags_list}> - $<$,MODULE_LIBRARY>:{deps.sharedlinkflags_list}> - $<$,EXECUTABLE>:{deps.exelinkflags_list}> + "$<$,SHARED_LIBRARY>:{deps.sharedlinkflags_list}>" + "$<$,MODULE_LIBRARY>:{deps.sharedlinkflags_list}>" + "$<$,EXECUTABLE>:{deps.exelinkflags_list}>" ) set({name}_COMPILE_DEFINITIONS{build_type_suffix} {deps.compile_definitions}) set({name}_COMPILE_OPTIONS{build_type_suffix}_LIST "{deps.cxxflags_list}" "{deps.cflags_list}") diff --git a/conans/test/functional/generators/cmake_apple_frameworks_test.py b/conans/test/functional/generators/cmake_apple_frameworks_test.py index 2d4f99b734b..c0b03fa9cf4 100644 --- a/conans/test/functional/generators/cmake_apple_frameworks_test.py +++ b/conans/test/functional/generators/cmake_apple_frameworks_test.py @@ -1,7 +1,10 @@ +import os import platform import textwrap import unittest +from parameterized import parameterized + from conans.model.ref import ConanFileReference from conans.test.utils.tools import TestClient @@ -23,7 +26,7 @@ def package_info(self): class App(ConanFile): requires = "{}" generators = "{{generator}}" - + def build(self): cmake = CMake(self) cmake.configure() @@ -45,7 +48,7 @@ def test_apple_framework_cmake(self): include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) conan_basic_setup() - + message(">>> CONAN_FRAMEWORKS_FOUND_LIB: ${CONAN_FRAMEWORKS_FOUND_LIB}") """) @@ -60,7 +63,7 @@ def test_apple_framework_cmake_find_package(self): project(Testing CXX) find_package(lib) - + message(">>> CONAN_FRAMEWORKS_FOUND_LIB: ${lib_FRAMEWORKS_FOUND}") """) @@ -272,3 +275,96 @@ def test(self): "test_package/timer.cpp": self.timer_cpp}) client.run("create .") self.assertIn("Hello World Release!", client.out) + + @parameterized.expand([('cmake', False), + ('cmake_find_package', False), ('cmake_find_package', True), ]) + def test_frameworks_exelinkflags(self, generator, use_components): + # FIXME: Conan 2.0. 'cpp_info' object has a 'frameworks' key + conanfile = textwrap.dedent(""" + from conans import ConanFile + + class Recipe(ConanFile): + settings = "os", "arch", "compiler", "build_type" + options = {'use_components': [True, False]} + default_options = {'use_components': False} + + def package_info(self): + if not self.options.use_components: + self.cpp_info.exelinkflags.extend(['-framework Foundation']) + #self.cpp_info.frameworks.extend(['Foundation']) + else: + self.cpp_info.components["cmp"].exelinkflags.extend(['-framework Foundation']) + #self.cpp_info.components["cmp"].frameworks.extend(['Foundation']) + """) + tp_cmakelists = textwrap.dedent(""" + cmake_minimum_required(VERSION 3.0) + project(test_package) + + include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) + conan_basic_setup(TARGETS) + + if(USE_FIND_PACKAGE) + message(">> USE_FIND_PACKAGE") + find_package(name) + add_executable(${PROJECT_NAME} test_package.cpp) + if (USE_COMPONENTS) + message(">> USE_COMPONENTS") + target_link_libraries(${PROJECT_NAME} name::cmp) + else() + message(">> not USE_COMPONENTS") + target_link_libraries(${PROJECT_NAME} name::name) + endif() + else() + message(">> not USE_FIND_PACKAGE") + add_executable(${PROJECT_NAME} test_package.cpp) + target_link_libraries(${PROJECT_NAME} CONAN_PKG::name) + endif() + """) + tp_conanfile = textwrap.dedent(""" + from conans import ConanFile, CMake + + class TestPackage(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "cmake", "cmake_find_package" + options = {'use_find_package': [True, False]} + requires = "name/version" + + def build(self): + cmake = CMake(self) + cmake.definitions["USE_FIND_PACKAGE"] = self.options.use_find_package + cmake.definitions["USE_COMPONENTS"] = self.options["name"].use_components + cmake.configure() + cmake.build() + + def test(self): + pass + """) + tp_main = textwrap.dedent(""" + int main() {} + """) + + t = TestClient() + t.save({'conanfile.py': conanfile, + 'test_package/conanfile.py': tp_conanfile, + 'test_package/CMakeLists.txt': tp_cmakelists, + 'test_package/test_package.cpp': tp_main}) + t.run("export conanfile.py name/version@") + + with t.chdir('test_package/build'): + if generator == 'cmake': + assert not use_components + t.run("install .. --build=missing" + " -o name:use_components=False -o use_find_package=False") + t.run("build ..") + self.assertIn(">> not USE_FIND_PACKAGE", t.out) + else: + assert generator == 'cmake_find_package' + t.run("install .. --build=missing" + " -o name:use_components={} -o use_find_package=True".format(use_components)) + t.run("build ..") + self.assertIn(">> USE_FIND_PACKAGE", t.out) + self.assertIn(">> {}USE_COMPONENTS".format("" if use_components else "not "), t.out) + + # Check we are using the framework + link_txt = t.load(os.path.join('CMakeFiles', 'test_package.dir', 'link.txt')) + self.assertIn("-framework Foundation", link_txt) From 9d3285c6330b61e67c564f4b84a52275e31f2dec Mon Sep 17 00:00:00 2001 From: czoido Date: Thu, 9 Jul 2020 18:35:11 +0200 Subject: [PATCH 3/3] bump version to 1.27.1 --- conans/__init__.py | 2 +- conans/client/migrations_settings.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/conans/__init__.py b/conans/__init__.py index cbdd2664670..59bf602f23d 100644 --- a/conans/__init__.py +++ b/conans/__init__.py @@ -22,4 +22,4 @@ SERVER_CAPABILITIES = [COMPLEX_SEARCH_CAPABILITY, REVISIONS] # Server is always with revisions DEFAULT_REVISION_V1 = "0" -__version__ = '1.27.0' +__version__ = '1.27.1' diff --git a/conans/client/migrations_settings.py b/conans/client/migrations_settings.py index c91525722ce..a284bc8767a 100644 --- a/conans/client/migrations_settings.py +++ b/conans/client/migrations_settings.py @@ -1300,4 +1300,6 @@ settings_1_26_0 = settings_1_25_2 settings_1_26_1 = settings_1_26_0 + settings_1_27_0 = settings_1_26_1 +settings_1_27_1 = settings_1_27_0