Конан CMake и Embarcadero интеграция - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь заставить Конан с CMake работать с компилятором Embarcadero Tokyo 10.2.3.Я могу сделать CMake с Embarcadero, следуя его руководству.Но проблема, кажется, случается с Конаном.Так что я делаю conan install.Тогда я делаю cmake .. -DCMAKE_CXX_COMPILER="bcc32c.exe" -DCMAKE_C_COMPILER="bcc32c.exe" -DCMAKE_VERBOSE_MAKEFILE=1 -G Ninja.Я получаю сообщение об ошибке

Неправильно 'Visual Studio'.Набор инструментов определяет компилятор как «MSVC», но CMake обнаружил «Embarcadero»

Стандартный профиль conan показывает compiler=Visual Studio, который, как мне кажется, является источником проблемы.Но не знаю, как изменить его на Embarcadero (не распознает), или если изменение профиля по умолчанию - путь.Мой файл CMakeLists.txt выглядит так (в основном по умолчанию)

project(Timer)
cmake_minimum_required(VERSION 3.11)

include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()

add_executable(timer timer.cpp)
target_link_libraries(timer ${CONAN_LIBS})

Полный вывод cmake приведен ниже:

-- The C compiler identification is Embarcadero 7.30.36015
-- The CXX compiler identification is Embarcadero 7.30.36015
-- Check for working C compiler: C:/Program Files (x86)/Embarcadero/Studio/19.0/bin/bcc32c.exe
-- Check for working C compiler: C:/Program Files (x86)/Embarcadero/Studio/19.0/bin/bcc32c.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Embarcadero/Studio/19.0/bin/bcc32c.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Embarcadero/Studio/19.0/bin/bcc32c.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Current conanbuildinfo.cmake directory: C:/Mathew Joy/Source/mytimer/build
CMake Error at build/conanbuildinfo.cmake:579 (message):
  **Incorrect 'Visual Studio'.  Toolset specifies compiler as 'MSVC' but CMake
  detected 'Embarcadero'**
Call Stack (most recent call first):
  build/conanbuildinfo.cmake:237 (conan_check_compiler)
  CMakeLists.txt:5 (conan_basic_setup)

1 Ответ

0 голосов
/ 25 мая 2018

Вам необходимо настроить файл settings.yml по умолчанию, который можно найти в <userhome>/.conan/settings.yml

В этом файле определены некоторые из самых популярных компиляторов, вы можете добавить что-то вроде:

compiler:
    sun-cc:
        ...
    gcc:
        version: ["4.1", "4.4", "4.5", "4.6", "4.7", "4.8", "4.9",

    Visual Studio:
        runtime: [MD, MT, MTd, MDd]
        version: ["8", "9", "10", "11", "12", "14", "15"]
        ...
    Embarcadero:
        version: ["V1", "V2"...]

Этот файл может быть передан и синхронизирован с командой и использован на машинах CI с помощью команды conan config install.

Затем вы можете добавить значения для удобства в свой профиль по умолчанию вместо Visual Studioзначения.

Вполне вероятно, что большая часть логики, которую предоставляют встроенные помощники сборки, такие как CMake, будет ограничена для этого компилятора, так как он его не распознает.Вы можете запустить свою логику для непосредственного вызова системы сборки, если это так:

def build(self):
    self.run("cmake . -G ....")
    self.run("cmake --build . --config Release")

Если вы хотите правильно собирать и создавать пакеты для разных конфигураций, вам следует параметризовать вышеизложенное с помощью настроек и опций, при необходимости.

Все это предполагает, что вы будете создавать и в зависимости от своих собственных пакетов, поскольку существующие пакеты в общедоступном репозитории conan-center будут для популярных компиляторов, поэтому двоичные файлы будут несовместимыи рецепты, скорее всего, не будут реализовывать построение из источников с Embarcadero.

...