LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

Использовать инструменты, вроде SCons.

Я спросил немного другое. Как, по-твоему, должен выглядеть хороший и удобный workflow в твоей задаче (там, где куча компиляторов)?

Начиная от того, как правильно использовать этот самый ExternalProject_Add

А чего его «правильно использовать»? Собираем статически, префиксы дефолтные, всё что нужно (путь к cmake, генераторы, тулчейн-файл) наследуем от себя, потом добавляем установочный префикс в туда, где его найдёт find_package() (т. е. в CMAKE_PREFIX_PATH). Альтернативно, делаем установочный префикс равным нашему собственному и собираем как угодно, тогда всё найдётся само.

Впрочем, я не любитель bundled dependencies и ни разу не использовал ExternalProject_*, так что мог какие-то мелкие тонкости проглядеть.

аканчивая поиском возможностей задать построения so-шки и a-шки из одних и тех же исходников

Два таргета с разными именами и вручную задать OUTPUT_NAME?

В экспортируемом Config-файле потом создаём INTERFACE таргет без суффикса и добавляем к нему в зависимости один из реальных согласно значению BUILD_SHARED_LIBS.

Исправление intelfx, :

Использовать инструменты, вроде SCons.

Я спросил немного другое. Как, по-твоему, должен выглядеть хороший и удобный workflow в твоей задаче (там, где куча компиляторов)?

Начиная от того, как правильно использовать этот самый ExternalProject_Add

А чего его «правильно использовать»? Собираем статически, префиксы дефолтные, всё что нужно (путь к cmake, генераторы, тулчейн-файл) наследуем от себя, потом добавляем установочный префикс в туда, где его найдёт find_package() (т. е. в CMAKE_PREFIX_PATH). Альтернативно, делаем установочный префикс равным нашему собственному и собираем как угодно, тогда всё найдётся само.

Впрочем, я не любитель bundled dependencies и ни разу не использовал ExternalProject_*, так что могу где-то в мелких деталях ошибиться.

аканчивая поиском возможностей задать построения so-шки и a-шки из одних и тех же исходников

Два таргета с разными именами и вручную задать OUTPUT_NAME?

В экспортируемом Config-файле потом создаём INTERFACE таргет без суффикса и добавляем к нему в зависимости один из реальных согласно значению BUILD_SHARED_LIBS.

Исправление intelfx, :

Использовать инструменты, вроде SCons.

Я спросил немного другое. Как, по-твоему, должен выглядеть хороший и удобный workflow в твоей задаче (там, где куча компиляторов)?

Начиная от того, как правильно использовать этот самый ExternalProject_Add

А чего его «правильно использовать»? Собираем статически, префиксы дефолтные, всё что нужно (путь к cmake, генераторы, тулчейн-файл) наследуем от себя, потом добавляем установочный префикс в туда, где его найдёт find_package() (т. е. в CMAKE_PREFIX_PATH). Альтернативно, делаем установочный префикс равным нашему собственному и собираем как угодно, тогда всё найдётся само.

Впрочем, я не любитель bundled dependencies и ни разу не использовал ExternalProject_*, так что могу где-то в мелких деталях ошибиться.

аканчивая поиском возможностей задать построения so-шки и a-шки из одних и тех же исходников

Два таргета с разными именами и вручную задать OUTPUT_NAME?

Исходная версия intelfx, :

Использовать инструменты, вроде SCons.

Я спросил немного другое. Как, по-твоему, должен выглядеть хороший и удобный workflow в твоей задаче (там, где куча компиляторов)?

Начиная от того, как правильно использовать этот самый ExternalProject_Add

А чего его «правильно использовать»? Собираем статически, префиксы дефолтные, всё что нужно (путь к cmake, генераторы, тулчейн-файл) наследуем от себя, потом добавляем установочный префикс в туда, где его найдёт find_package() (т. е. в CMAKE_PREFIX_PATH). Альтернативно, делаем установочный префикс равным нашему собственному и собираем динамически, тогда всё найдётся само.

Впрочем, я не любитель bundled dependencies и ни разу не использовал ExternalProject_*, так что могу где-то в мелких деталях ошибиться.

аканчивая поиском возможностей задать построения so-шки и a-шки из одних и тех же исходников

Два таргета с разными именами и вручную задать OUTPUT_NAME?