Как вызвать несколько файлов toolchain.cmake в CMakeLists.txt - PullRequest
0 голосов
/ 04 июня 2019

У меня есть два файла toolchain.cmake для разных архитектур. Есть ли способ вызвать оба в файле CMakeLists.txt, или я должен вызвать их соответственно, как я делаю, как обычно. Затем это работает хорошо. мои файлы т.е. toolchain_a.cmake и toolchain_b.cmake

Я пытался сделать операторы if и с переменной OSX_ARCHITECTURES, но не сработал, как я ожидал.

1 Ответ

0 голосов
/ 05 июня 2019

Вы можете иметь CMakeLists.txt, включая модуль ExternalProject, добавляющий два проекта.Один для каждой цепочки инструментов.

Все это может быть сделано из одного CMakeLists.txt с использованием парадигмы "SuperBuild".

В двух словах, это работает так:

cmake_minimum_required(VERSION 3.14)
project(Awesome)
option(Awesome_SUPERBUILD "Cross-compile Awesome for each toolchain" ON)
include(ExternalProject)
if(Awesome_SUPERBUILD)
  ExternalProject_Add(Awesome-ToolchainA
    SOURCE_DIR ${CMAKE_SOURCE_DIR}
    BINARY_DIR ${CMAKE_BINARY_DIR}/ToolchainA-build
    CMAKE_CACHE_ARGS
      -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_SOURCE_DIR}/toolchain_a.cmake
      -DAwesome_SUPERBUILD:BOOL=0
    INSTALL_COMMAND ""
    )
  ExternalProject_Add(Awesome-ToolchainB
    SOURCE_DIR ${CMAKE_SOURCE_DIR}
    BINARY_DIR ${CMAKE_BINARY_DIR}/ToolchainB-build
    CMAKE_CACHE_ARGS
      -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_SOURCE_DIR}/toolchain_b.cmake
      -DAwesome_SUPERBUILD:BOOL=0
    INSTALL_COMMAND ""
    )
  return()
endif()

# Below is the CMake code of the project to cross-compile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...