Size: a a a

2018 November 23

SE

Stanislav Ershov in pro.buildsystems
Igor Ivanov
но вообще меня собственно интересует в данный момент не столько решение данной задачи, сколько почему find_path() начинает искать не из указанного корня, а из папки include в нём
добавляй сюда тогда CMAKE_FIND_ROOT_PATH
источник

II

Igor Ivanov in pro.buildsystems
Stanislav Ershov
добавляй сюда тогда CMAKE_FIND_ROOT_PATH
чем дальше в лес, тем меньше я понимаю как работает вся эта find_магия, и как её следует идиоматически писать
источник

SE

Stanislav Ershov in pro.buildsystems
Igor Ivanov
чем дальше в лес, тем меньше я понимаю как работает вся эта find_магия, и как её следует идиоматически писать
да блин, этот момент в доках вроде неплохо описан
источник

II

Igor Ivanov in pro.buildsystems
Stanislav Ershov
да блин, этот момент в доках вроде неплохо описан
да вот чего-то не похоже, иначе я бы не сидел над ним уже второй день(
источник

II

Igor Ivanov in pro.buildsystems
дано:
есть папка /sdk, в ней всякие /sdk/boost, /sdk/openssl и так далее, в каждой есть ./include и ./lib

хочу:
при конфигурации указать SDK_PATH=/sdk и чтобы дальше find-модули сами всё разрулили

информация:
The CMake variable CMAKE_FIND_ROOT_PATH specifies one or more directories to be prepended to all other search directories. This effectively “re-roots” the entire search under given locations.

гипотеза:
проходимся по всем подпапкам в SDK_PATH, заполняем CMAKE_FIND_ROOT_PATH=/sdk/boost;/sdk/openssl;/sdk/opencvfind_package будет заходить в каждый из путей, видеть там include и lib и успешно их подтягивать

результат:
при наличии /sdk/opencv/include/opencv/cv.h и /sdk/opencv/test.pp, не работает ни find_path(OpenCV_ROOT_DIR include/opencv/cv.h), ни find_path(OpenCV_ROOT_DIR test.pp, в OpenCV_ROOT_DIR я хочу получить /sdk/opencv
делается этот финт ушами, судя по комментариям в модуле, затем чтобы не найти инклюды в /sdk/opencv2.4.6 и либы в /sdk/opencv2.4.9, а вначале найти корень, а потом в нём либы и инклюды с помощью find_package(... PATHS ${OpenCV_ROOT_DIR})
источник

II

Igor Ivanov in pro.buildsystems
видимо на каком-то этапе мои мысли начинаются расходиться с мыслями людей которые пишут на смаке уже давно
источник

SE

Stanislav Ershov in pro.buildsystems
> в OpenCV_ROOT_DIR я хочу получить /sdk/opencv делается этот финт ушами
эм, нахрена?
источник

II

Igor Ivanov in pro.buildsystems
Stanislav Ershov
> в OpenCV_ROOT_DIR я хочу получить /sdk/opencv делается этот финт ушами
эм, нахрена?
согласно комментариям от автора,
# select exactly ONE OpenCV base directory/tree
# to avoid mixing different version headers and libs
источник

SE

Stanislav Ershov in pro.buildsystems
Igor Ivanov
согласно комментариям от автора,
# select exactly ONE OpenCV base directory/tree
# to avoid mixing different version headers and libs
какого автора?
источник

II

Igor Ivanov in pro.buildsystems
автора FindOpenCV.cmake, который я утащил откуда-то с гитхаба, потому что ни в нашем сдк ни в изкорбочных модулях смака его не нашлось
источник

KI

Konstantin Ivlev in pro.buildsystems
там вместо него конфиг файлы должны быть
источник

SE

Stanislav Ershov in pro.buildsystems
Konstantin Ivlev
там вместо него конфиг файлы должны быть
сомневаюсь что для opencv  2.4 они есть
источник

II

Igor Ivanov in pro.buildsystems
Konstantin Ivlev
там вместо него конфиг файлы должны быть
источник

KI

Konstantin Ivlev in pro.buildsystems
щас посмотрю
источник

KI

Konstantin Ivlev in pro.buildsystems
источник

KI

Konstantin Ivlev in pro.buildsystems
так что по идее, find_package(OpenCV CONFIG REQUIRED)
источник

KI

Konstantin Ivlev in pro.buildsystems
даже так find_package(OpenCV CONFIG REQUIRED COMPONENTS core highgui imgproc)
источник

SE

Stanislav Ershov in pro.buildsystems
Konstantin Ivlev
так что по идее, find_package(OpenCV CONFIG REQUIRED)
надо только указать где он будет искать config :D
источник

II

Igor Ivanov in pro.buildsystems
Konstantin Ivlev
🤔
оно есть у меня в системе для установленного у меня 2.4.9, но я слегка сомневаюсь, насколько эти конфиги взаимозаменяемы между моим линухом и целевым армом
источник

KI

Konstantin Ivlev in pro.buildsystems
ну я так понимаю где-то в /sdk
источник