/ / ¿La forma correcta de decirle a CMake que busque (n) curses en una ubicación no predeterminada? - macos, cmake

¿La forma correcta de decirle a CMake que busque (n) curses en una ubicación no predeterminada? - macos, cmake

Tengo un proyecto CMake que usa FindCurses.cmake. Estoy en OS X, donde el sistema operativo se envía con un antiguola versión de ncurses (y no parece que incluya los enlaces de C ++) y el código que estoy intentando construir requiere ncurses 5.9. He utilizado Homebrew para instalar 5.9, pero como un buen vecino, Homebrew no sobrescribe los recursos curses / ncurses que vienen con el sistema operativo (ni quiero que lo haga).

Mi instinto es que esto es algo que deberíaser capaz de hacer sin editar los archivos CMake, ¿verdad? (Debido a que este cambio en el comportamiento es específico de mi entorno de compilación y no es un cambio en el proyecto, ¿verdad?) Con un proyecto autoconf probablemente agregaría CFLAGS y LDFLAGS variables de entorno antes de ejecutar ./configure, pero CMake parece tener mucho más en juego.

¿Cuál es la forma idiomática de hacer esto en CMake?

Respuestas

1 para la respuesta № 1

Puede proporcionar rutas de búsqueda adicionales a través de CMAKE_PREFIX_PATH. Caminos dentro CMAKE_PREFIX_PATH se buscan primero

Puedes especificar CMAKE_PREFIX_PATH ya sea codificado en el archivo CMakeLists.txt o, preferiblemente, a través de:

cmake -D CMAKE_PREFIX_PATH=/path/where/brew/installed/curses .

0 para la respuesta № 2

Puede agregar en su CMakeLists.txt include_directories y link_directories apuntando a su versión ncurses.

También intentaría encontrar si ncurses 5.9 tiene un módulo pkg-config. Consulte con pkg-config --list-all.