Russian Qt Forum
Ноябрь 22, 2024, 00:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Глобальная переменная в cmake для заполнения списком файлов  (Прочитано 2900 раз)
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« : Июль 11, 2024, 23:45 »

Всем привет.

Есть главный cmake файл, в нем через add_subdirectory() я добавляю подпроекты, и в них мне надо заполнять глобальную переменную списком файлов.
После всех подпроектов мне надо с этим списком файлов работать.
Подскажите как парвильно это сделать?
Пробовал
set_property(GLOBAL PROPERTY source_list_property "${PUBLIC_HEADER}")
и
set(source_list ${source_list} ${file_path} PARENT_SCOPE)

но не поулчается.
Или я не парвильно с этми работаю.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июль 12, 2024, 11:10 »

вообще лучше по возможности такого избегать.

вариант с PARENT_SCOPE правильный. а что с ним не получается?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #2 : Июль 16, 2024, 14:59 »

вообще лучше по возможности такого избегать.

вариант с PARENT_SCOPE правильный. а что с ним не получается?

Этого не поулчится избежать. На этом принципе построен проект, из ооочень большого колличества модулей.
Я только пытаюсь привести в надлежайший вид прототип.
Записан
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #3 : Июль 23, 2024, 20:21 »

решение найдено, если кому пригодится то привожу пример ниже.

Код:
set_property(GLOBAL PROPERTY HEADERS_PROPERTY) # with props

function(add_headers_props)
message(STATUS "Adding headers with property ${ARGV}")

get_property(HEADERS GLOBAL PROPERTY HEADERS_PROPERTY)
set_property(GLOBAL PROPERTY HEADERS_PROPERTY ${HEADERS} ${ARGV})
endfunction()

get_property(HEADERS_PROPERTY GLOBAL PROPERTY HEADERS_PROPERTY)

Суть такая, с начала обьявляется глобальная переменная, потом черег гетер и сетер мы работаем с получением и наполнением.
Надеюсь кому то тоже может помочь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.