LINUX.ORG.RU

Сообщения Brynjolf

 

C++ проект, как корректно подключить к проекту при помощи cmake 2 папочки с одинаковым названием (хедер онли либы) ?

Форум — General

Суть, на самом деле, очень простая. Есть большой проект, который содержит по сути app_1 и app_2, которое наследуется от app_1. В проекте нужно сделать поддержку версионности, чтобы каждый app печатал свою версию, для этого сделаны хедер онли библиотеки (копипастой) для каждого app, куда просто в строковые константы (APP_1_VERSION и APP_2_VERSION) грузится версия с гита.

Структура проекта:

app_2

version

—->app_1

—->version

В папке version есть CMakeLists.txt следующего содержания [code]

cmake_minimum_required(VERSION 3.0) project(version)

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.hpp.in ${CMAKE_CURRENT_SOURCE_DIR}/version.hpp) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.json.in ${CMAKE_CURRENT_BINARY_DIR}/version.json)

add_library(${PROJECT_NAME} INTERFACE) target_sources(${PROJECT_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/version.hpp)

[/code]

В другой папке версион тот же самый код, за исключением того, что там project(app_2_version)

Так вот, ПРОБЛЕМА, если я просто собираю app_1, то все нормально, если же я собираю app_2, которое триггерит сборку app_1, то он мне пишет

… …..app_1/main-app1.cpp…. error: ‘APP_1_VERSION’ was not declared in this scope; did you mean ‘APP_2_VERSION’? 68 | APP_1_VERSION.c_str())); | ^~~~~~~~~~~~~~~~~~~

И действительно, я чекаю, вот даже в vscode вот эта строчка #include <version/version.hpp> какого-то дьявола включает хедер с константами из app_2 Как я понимаю, ему там все пути расшарены и он выбирает включать то, что лежит выше

Короче гайс, кто шарит в cmake помогите, пожалуйста, как это сделать нормально, чтобы все работало, я пытался честно разбираться в cmake, интерфейсы там какие-то, паблик прайват, че-то там еще, по итогу толком ничего не понял, время идет, а решение нужно уже вот прям ЩАС или даже вчера

АААААА, хелп, 0 помощи (Папку переименовывать не предлагать) Если нужно ответить на какие-то уточняющие вопросы, то пишите, постараюсь быстро ответить (но я щас в галере сижу, так что не уверен, что прям мега быстро)

 , , , ,

Brynjolf
()

RSS подписка на новые темы