Как я могу преобразовать пути стиля * nix в пути стиля Windows в CMake? - PullRequest
1 голос
/ 03 мая 2020

Я разрабатываю C программу на основе GLib и OpenBLAS. Я надеюсь, что он будет работать на обеих платформах Windows и linux, поэтому я выбрал CMake для настройки проекта. Вот мой CMakeLists.txt:

# ...
find_package(PkgConfig REQUIRED)
pkg_check_modules(GLib REQUIRED glib-2.0)
message(STATUS "GLib Found:")
message(STATUS "  GLib include directories:   ${GLib_INCLUDE_DIRS}")
message(STATUS "  GLib library directories:   ${GLib_LIBRARY_DIRS}")
message(STATUS "  GLib libraries:             ${GLib_LIBRARIES}")
pkg_check_modules(BLAS REQUIRED openblas)
message(STATUS "OpenBLAS Found:")
message(STATUS "  BLAS include directories:   ${BLAS_INCLUDE_DIRS}")
message(STATUS "  BLAS library directories:   ${BLAS_LIBRARY_DIRS}")
message(STATUS "  BLAS libraries:             ${BLAS_LIBRARIES}")
#...

Работая на MSYS2 / MinGW64, cmake дает:

-- GLib Found:
--   GLib include directories:   X:/path/to/msys64/mingw64/include/glib-2.0;X:/path/to/msys64/mingw64/lib/glib-2.0/include;X:/path/to/msys64/mingw64/include
--   GLib library directories:   X:/path/to/msys64/mingw64/lib
--   GLib libraries:             glib-2.0;intl
-- OpenBLAS Found:
--   BLAS include directories:   /mingw64/include/OpenBLAS
--   BLAS library directories:   
--   BLAS libraries:             openblas

Кажется, что pkg-config использует * nix путь в openblas, что приводит к ошибкам .

Добавить X:/path/to/msys64 в качестве префикса должно работать. Однако msys может быть установлен в разных местах, и я не знаю, как найти путь msys в cmake.

Спасибо за любую помощь заранее.

PS FindBLAS выдает тот же вывод.

1 Ответ

0 голосов
/ 03 мая 2020

Если вы устанавливаете Openblas и Glib в msys2, то вы можете сравнить файлы pkg-config openblas.p c и glib-2.0.p c. Теперь вы бы выяснили различия между ними. Другими словами, добавьте префикс = / mingw64 в файл openblas.p c.

...