Loading...
Aleksandar_Aleksiev avatar Aleksandar_Aleksiev 4 Точки

APPEND в CMAKE на файл от директория, която не съществува

Здравейте,

забелязах, че във файла helpers.cmake имаме APPEND на:

list(APPEND
    CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/find_modules),

но такава директория не съществува. За сметка на това имаме директория "cmake_helpers", която в себе си съдържа "find_modules".

Въпросът ми е - не трябва ли да се APPEND-не "/cmake_helpers/find_modules", а не "/cmake_modules/find_modules"?

Ако трябва, как и защо до този момент няма индикация за warning/error?

Благодаря!

Тагове:
2
C++ Applications Development
j.petrov_90 avatar j.petrov_90 373 Точки
Best Answer

Привет, Aleksandar_Aleksiev,

Имаш добро око.
Нали се сещаш как първата лекция дебъгвах 15 мин защо find_package() функцията не работи? :)
Оказа се, че това е един от главните проблеми.

Доверих се сляпо на copy/paste файлът, който ви бях подготвил.
Този същият, който ти ми цитираш.

Сега на въпроса ти - защо работи?
Прав си, че се извиква
list(APPEND
    CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/find_modules)
а всъщност папката се казва cmake_helpers.

"Забих" тази команда тук, защото исках да не я пишете вие.
Жалко за мен - преименувал съм папката в последствие.

За да го накарам да работи - в основният CMakeLists направих следното:
set(CMAKE_MODULE_PATH 
    ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake_helpers/find_modules)
Което прави същото - append-ване.

И то сега какво излиза? Че и двата пътя са изброени вътре.
Пробвай да принтираш съдържанието на променливата CMAKE_MODULE_PATH.
Естествено след като си include-нал cmake_helpers и след като си сетнал променливата.
Това става с командата message("Hello World!")
 

message("The value of 'CMAKE_MODULE_PATH' is ${CMAKE_MODULE_PATH}")
При мен излизат и двете.
Забележи, че всъщност това е списък, където стойностите са разделени с ';'

/home/zhivko/Scaling_And_Alpha_Blending/cmake_modules/find_modules;/home/zhivko/Scaling_and_Alpha_Blending/cmake_helpers/find_modules


Поздрави,
Живко

1
19/10/2021 14:17:46
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.