Не удалось скомпилировать зависимости проекта C ++ для определенного блока macOS - PullRequest
0 голосов
/ 21 февраля 2019

У нас есть кроссплатформенный проект C ++, который использует CMake для системы сборки и Conan для управления зависимостями.

При сборке на конкретной машине MacOS сборка завершается неудачно ( журнал сборки ).Он не завершается с ошибкой на другом компьютере с MacOS, на котором установлена ​​та же версия операционной системы, CMake, Xcode и Conan (версия Conan: 1.12.3 на macOS 10.14.3 (18D109) и CMake 3.14.0-RC2).Вот пример успешной сборки .

Оба журнала сборки были сгенерированы сборками с несуществующим каталогом ~ / .conan на компьютере сборки.

Обратите внимание, чтоbuild only не удается для цели iOS.Цель macOS на том же компьютере работает нормально и без проблем.

Я попытался, но безрезультатно:

  • Nuking ~ / .conan
  • Удаление ипереустановка Xcode

Вот файл проекта conanfile.py:

from conans import ConanFile, CMake
from conans.tools import os_info


class SphereGameConan(ConanFile):
    generators = "cmake"
    settings = "arch", "build_type", "compiler", "os"
    requires = (
        "gtest/1.8.1@bincrafters/stable",
        "spdlog/1.3.0@bincrafters/stable",
    )

    def requirements(self):
        if self.settings.os == "Windows" or self.settings.os == "Macos":
            self.requires("glfw/3.2.1@bincrafters/stable")

Чего мне не хватает?

1 Ответ

0 голосов
/ 22 февраля 2019

Нам удалось решить эту проблему с помощью чего-то особенного.

В окне, которое не удалось собрать, мы изменили darwin-toolchain/1.0@theodelrieu/stable в ios.profile на darwin-toolchain/1.0.4@theodelrieu/stable (последняя версия, созданная недавно).Каким-то образом, как только мы это сделали, коробка начала все правильно строить.Это инструментальная цепочка, которую мы используем с Конаном, чтобы иметь возможность компилировать для iOS.

Вопрос на миллион долларов - почему другая коробка строила проект нормально, используя версию darwin-toolchain, выпущенную в августе прошлого года?Вероятно, ошибка в Конане.

...